[.NET クラスライブラリ Tips][LINQ] 指定された条件に一致する要素をシーケンスの先頭から取得する(TakeWhileメソッド)

スポンサーリンク

概要

LINQのTakeWhileメソッドは、指定された条件に一致する要素をシーケンスの先頭から取得するメソッドです。指定された条件が false になった時点でシーケンスの取得を終了します。このメソッドは、Where メソッドと同様に、フィルタリング操作に使用されます。

この記事ではTakeWhileの使用方法を説明します。

公式サイト情報はコチラを参照してください。

構文

public static IEnumerable TakeWhile(
   this IEnumerable source,
   Func<TSource, bool> predicate)

source:要素が返されるシーケンス。
predicate:各要素がテストされる条件を定義する関数。
TakeWhile メソッドは、引数として渡された関数が true を返す限り、シーケンスから要素を取得し続けます。条件が false になった時点で、メソッドの実行を終了し、取得した要素を返します。TakeWhile メソッドの返り値は、フィルタリングされたシーケンスです。

使用例

以下の例では、文字列のリストから、最初の2文字が “A” の要素を取得します。

List list = new List{"Apple", "Airplane", "Banana", "Cat"};
var result = list.TakeWhile(x => x.StartsWith("A") && x.Length >= 2);
foreach (var item in result)
{
    Console.WriteLine(item);
}

出力:

Apple
Airplane

この例では、TakeWhile メソッドに条件として、文字列が “A” で始まることと、長さが 2 以上であることを指定しています。条件に合致する最初の 2 つの要素、”Apple” と “Airplane” が取得されています。 “Banana” では条件が false になるため、シーケンスの取得が終了します。

.NET クラス Tips 一覧

これまでに紹介した .NET Tips 一覧はこちら

Please follow and like us:

コメント

タイトルとURLをコピーしました