リストから条件に一致する要素を全て取得する方法の1つに「FindAll」メソッドがあります。
サンプルコードを交えて解説したいと思います。
説明
リストから指定した条件に一致する要素を全て取得する。
ポイント
・先行評価される
・条件に一致する要素がある場合は条件に一致する要素のリストを返す
・条件に一致する要素がない場合は空のリストを返す
遅延評価で同様のことを行いたい場合は「Where」を使います。
funcording.hatenablog.com
例
コード
using System; using System.Collections.Generic; namespace Sample { /// <summary> /// メインプログラム /// </summary> public class Program { /// <summary> /// FindAllの使い方 /// </summary> static void Main() { // リストを生成 var list = new List<string>(); // リストに値を追加 list.Add("A"); list.Add("BB"); list.Add("CCC"); // 該当する要素がある場合の検索 List<string> result1 = list.FindAll(n => n.Length >= 3); Console.WriteLine("長さが3以上の要素数 : " + result1.Count); // 該当する要素がない場合の検索 List<string> result2 = list.FindAll(n => n.Length >= 10); Console.WriteLine("長さが10以上の要素数 : " + result2.Count); } } }
出力
長さが0以上の要素数 : 1 長さが10以上の要素数 : 0