[LINQ] LINQ to Objects(TakeWhileメソッド)

ある要素から、先頭から条件が満たされる間、値を取得したい場合には TakeWhileメソッドを使用します。

動作としてはSkipWhileメソッドと逆になります。

例えば、以下は先頭から8未満の数値が続く限り値を取得して出力する例です。

要素は、3,5,2,1,9,8,7なので、9が現れたときに条件を満たさなくなるため、結果として3,5,2,1を出力します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

For Each item As Integer In numbers.TakeWhile(Function(n) n < 8)
    Console.WriteLine(item)
Next

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

foreach(var item in numbers.TakeWhile(n => n < 8))
{
    Console.WriteLine(item);
}

[LINQ] LINQ to Objects(Takeメソッド)

ある要素の中の、先頭のn個をだけを取得したい場合には Takeメソッドを使用します。

動作としてはSkipメソッドの逆になります。

例えば、以下はTakeメソッドを使用して、先頭の3個を出力します。

要素は、3,5,2,1,9,8,7 なので、結果として3,5,2を出力します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

For Each item As Integer In numbers.Take(3)
    Console.WriteLine(item)
Next

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

foreach(var item in numbers.Take(3))
{
    Console.WriteLine(item);
}

[LINQ] LINQ to Objects(SkipWhileメソッド)

ある要素の先頭から条件が満たされるまでの間を無視したい場合には SkipWhileメソッドを使用します。

例えば、以下は先頭から8未満の数値が続く限り無視して、残りを出力する例です。

要素は、3,5,2,1,9,8,7なので、9が現れたときに条件を満たさなくなり、結果として9,8,7を出力します。

VBの例

Dim numbers() As Integer = {3, 5, 2, 1, 9, 8, 7}

For Each item As Integer In numbers.SkipWhile(Function(n) n < 8)
    Console.WriteLine(item)
Next

C#の例

int[] numbers = { 3, 5, 2, 1, 9, 8, 7 };

foreach(var item in numbers.SkipWhile(n => n < 8))
{
    Console.WriteLine(item);
}