C# 3.0 を使ってみる
匿名型、クエリ式、オブジェクト初期化子
C# 3.0 で導入された「匿名型」、「クエリ式」、「オブジェクト初期化子」などを使った簡単なサンプルを書いてみた。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace linqTest1 { class Program { static void Main(string[] args) { List<Data> list = new List<Data>() { new Data() { FirstName = "test", LastName = "3", Point = 8 }, new Data() { FirstName = "test", LastName = "1", Point = 10 }, new Data() { FirstName = "test", LastName = "2", Point = 5 }, }; //Point の値が 7より大きいものを FirstName + LastName 順でソートし、 //Name と Point プロパティを持つ匿名型のオブジェクトに格納 var selectedList = from it in list where it.Point > 7 orderby it.FirstName + it.LastName select new { Name = it.FirstName + it.LastName, Point = it.Point }; foreach (var data in selectedList) { Console.WriteLine("{0}, {1}", data.Name, data.Point); } } } class Data { private string firstName; private string lastName; private int point; public string FirstName { get { return this.firstName; } set { this.firstName = value; } } public string LastName { get { return this.lastName; } set { this.lastName = value; } } public int Point { get { return this.point; } set { this.point = value; } } } }
実行結果
test1, 10 test3, 8