C#:Tips:LINQでの条件設定(Where拡張メソッド)

LINQで条件設定:Where拡張メソッドを使用



        public static void m_Where拡張メソッド()
        {
            // 1::10
            IEnumerable<int> ilList = Enumerable.Range(1, 10);
            Console.Write("List: ");
            var ilBuf = ilList.ToList();
            for (int i = 0; i < ilBuf.Count(); i++)
            {
                Console.Write("[{0}]{1} ", i, ilBuf[i]);
                
            }
            Console.WriteLine();

            //============================================
            // 偶数リスト(各要素で2の余剰が0のものを抽出)
            //============================================
            ilResult = ilList.Where(n => n % 2 == 0);
            Console.Write("偶数値: ");
            ilResult.ToList().ForEach(n => Console.Write("{0} ", n));
            Console.WriteLine();

            //============================================
            // 偶数リストを合計
            //============================================
            var iResult = ilList.Where(n => n % 2 == 0).Sum();
            Console.Write("偶数の合計:{0} ", iResult);
            Console.WriteLine();

            //============================================
            // Nullを除いた、最大・最小
            //============================================
            int?[] iaNumbers = { 1, 2, null, 3 };

            var vMin = iaNumbers.Where(n => n != null).Min(); Console.WriteLine("Min(nullを除く) = {0}", vMin);
            var vMax = iaNumbers.Where(n => n != null).Max(); Console.WriteLine("Max(nullを除く) = {0}", vMax);
            Console.WriteLine();

            //============================================
            // 偶数インデックス
            //  (コレクションの条件指定(別途説明))
            //============================================
            // where拡張メソッドのオーバーロード
            //  ARG1:対象値
            //  ARG2:インデックス
            //------------------------------------------
            var ilResult = ilList.Where((w, n) => n % 2 == 0);
            Console.Write("偶数カラム: ");
            ilResult.ToList().ForEach(n => Console.Write("{0} ", n));
            Console.WriteLine();

        }