読者です 読者をやめる 読者になる 読者になる

C# 3.0 - LINQ to Objects 複数フィールド抽出

複数フィールドを取得する場合は、selectに匿名型を指定します

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Program
{
    class Program
    {
        static void Main(string[] args)
        {
            var persons = new[]
                        {
                            new { ID = 0, Age = 22, Name = "Akira"  },
                            new { ID = 1, Age = 38, Name = "Bob"    },
                            new { ID = 2, Age = 13, Name = "Millia" }
                        };

            // 18歳以上の人の年齢と名前を抽出
            var query = from person in persons where person.Age >= 18 select new { person.Age, person.Name };

            foreach (var person in query) {
                Console.WriteLine("年齢:{0}, 名前:{1}", person.Age, person.Name);
            }
        }
    }
}

selectに指定する匿名型のプロパティは、検索元クラスのプロパティ名と同じものでなければならない