C#でLinqのSkipとTakeを使った配列のスライス

C# コンピュータ
C#

比較的新しいC#であればnum[1..3]の様に配列の一部を取り出すことが出来ますが、最近mono環境の少し古いC#を使っているので、Linqを使って同じような処理を行う方法を調べてみました。

class Program
{
    static void Main()
    {
        byte[] byteArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};

        int start = 1;
        int end = 3;
        int length = end - start + 1;

        var s = byteArray.Skip(start).Take(length);

        Console.WriteLine("result:{0}", String.Join(",", s));
    }
}

結果

result:1,2,3

Skipで配列のインデックスを移動し、Takeで必要な数分だけ要素を取り出すイメージになります。

コメント