[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);
}

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

ある要素の中の、先頭のn個を無視したい場合には skipメソッドを使用します。

例えば、以下はskipメソッドを使用して、先頭の3個を無視した要素を出力します。

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

VBの例

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

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

C#の例

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

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

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

Emptyメソッドを使用すると、指定したデータ型の空の要素を作成することができます。

以下は 空のint型の要素を作成する例です。

VBの例

Dim data = Enumerable.Empty(Of Integer)()

C#の例

var data = Enumerable.Empty<int>();

空の要素は、

  • あるメソッドで特定のデータ型を返却する必要があるが、条件によって空の要素を返す必要がある場合
  • あるメソッドの引数に、特に値を渡す必要がない場合

などに使用できます。