Fun Coding

学んだことを記録していきます!

【C#】リストから条件に一致する要素を全て取得する方法(Where)

リストから条件に一致する要素を全て取得する方法の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