1. ホーム
  2. .net

[解決済み] LINQのwhereとtakewhileの比較

2022-10-26 13:59:26

質問

の差分を取りたいのですが TakeWhile &です。 Where LINQメソッド。MSDNから以下のデータを入手しましたが、私には意味がわかりませんでした。

Where<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>) 

述語に基づいて一連の値にフィルタをかけます。

TakeWhile<TSource>(IEnumerable<TSource>, Func<TSource, Boolean>)

指定された条件が真である限り、シーケンスから要素を返します。

どんな意見でも歓迎します。

どのように解決するのですか?

TakeWhile は、条件が偽のときに停止する。 Where は継続し、条件に一致するすべての要素を探します。

var intList = new int[] { 1, 2, 3, 4, 5, -1, -2 };
Console.WriteLine("Where");
foreach (var i in intList.Where(x => x <= 3))
    Console.WriteLine(i);
Console.WriteLine("TakeWhile");
foreach (var i in intList.TakeWhile(x => x <= 3))
    Console.WriteLine(i);

与える

Where
1
2
3
-1
-2
TakeWhile
1
2
3