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