LINQで条件設定:Where拡張メソッドを使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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(); } |