C#_Skip( n ).Take( m )

配列から、指定した要素を取得する時のメソッド。

配列.Skipn ).Takem ).ToArray( );

配列 n 番目までの要素を飛ばし m 個分要素を取得する。

※ 前提:using System.Linq; 必要。

ex )

int[ ] ary = new int[ ] { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21 };

int[ ] get = ary.Skip(3).Take(5).ToArray();
//3 つ分の要素を飛ばし5 つ分の要素を取得する。
//10 ~ 12 が飛ばされ、13 ~ 17 の要素が get に格納される。

foreach (var elem in get)
{
    Console.WriteLine(elem);
}

 

SkipWhile と TakeWhile

SkipWhile:指定した条件に一致しなくなるまでスキップ
TakeWhile:指定した条件に一致している間要素を返す

ex )

int[ ] getW = ary.SkipWhile(i => i < 13).TakeWhile(i => i < 18).ToArray();
//12以下が飛ばされ、17 以下がgetW に格納される。

foreach (var elemW in getW)
{
    Console.WriteLine(elemW);
}

 

こちらから。
https://dobon.net/vb/dotnet/programing/arrayslice.html


以上。

---Memo---
取得した要素を処理して格納する場合は、以下の様に書く。
var aryB= aryA.Skip( n ).Take( m ).Select(e => e * 100 ));