rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 3.0 - LINQ

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

LINQ

 https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/concepts/linq/query-syntax-and-method-syntax-in-linq
 データソースからデータを取得する。その際、変換や集計、グループ化などを行うことも可能。クエリ式とメソッド式という 2 つの形式があるが、一般にメソッド式が使われる。下記はメソッド式の例。

int[] data = new[] { 1, 2, 3, 4, 5, 6 };

var evens = data.Where(x => x % 2 == 0);        // 偶数だけ取り出す
foreach (var i in evens)
{
    Console.Write(i);  // 246
}

var ws = data.Select(x => x * 2);               // 全てに 2 を乗算する
foreach (var i in ws)
{
    Console.Write(i);     // 24681012
}

var evensws = data.Where(x => x % 2 == 0).Select(x => x * 2);   // 偶数だけ取り出し 2 を乗算する
foreach (var i in evensws)
{
    Console.Write(i);     // 4812
}

Console.WriteLine(data.Max());  // 6;
Console.WriteLine(data.Min());  // 1;
Console.WriteLine(data.Sum());  // 21