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(); }