C# の配列スライス 質問する

C# の配列スライス 質問する

どうやってやるのでしょうか? バイト配列が与えられた場合:

byte[] foo = new byte[4096];

配列の最初の x バイトを別の配列として取得するにはどうすればよいですか? (具体的には、 として必要ですIEnumerable<byte>)

これは s を操作するためのものですSocket。最も簡単な方法は、Perl 構文に似た配列のスライスだと思います。

@bar = @foo[0..40];

配列の最初の 41 要素を返します@bar。C# で何か見落としている点があるのでしょうか、それとも他に何かすべきことがあるのでしょうか?

LINQ は私にとってはオプションです (.NET 3.5)。役に立つかもしれません。

ベストアンサー1

使用できるArraySegment<T>配列をコピーしないので非常に軽量です。

string[] a = { "one", "two", "three", "four", "five" };
var segment = new ArraySegment<string>( a, 1, 2 );

おすすめ記事