C#
最短対処: コピペで動く3つの Select
出典: C# LINQ Select の3パターン — 単純射影 / 匿名型整形 / インデックス付きの使い分け — 最短対処: コピペで動く3つの Select
public class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public Department Department { get; set; } // 参照型・null になりうる
}
public class Department
{
public string Name { get; set; }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「最短対処: コピペで動く3つの Select」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
6 件// List から名前だけ取り出す var names = employees.Select(e => e.Name).ToList(); // DataTable から型付きで1列取り出す(業務SE頻出)未収録
パターン①: 単純射影(1列だけ・型付きで取り出す)
#6364f5bd7109
var view = employees.Select(e => new { e.Id, 名前 = e.Name,未収録
パターン②: 匿名型へ整形(複数列をまとめて画面/CSV用に)
#567ac35b66ff
var rows = dt.AsEnumerable().Select(r => new { Id = r.Field<int>("Id"), Name = r.Field<string>("Name"),未収録
パターン②: 匿名型へ整形(複数列をまとめて画面/CSV用に)
#a8c0879a3ee4
var numbered = employees.Select((e, i) => new { No = i + 1, // 1 始まりにしたいので +1 名前 = e.Name未収録
パターン③: インデックス付き Select(行番号・連番を振る)
#9cf00057024d
class Program { static void Main() {
▶ 実行可
ハマり①: Select は foreach するまで実行されない(遅延評価)
#b2e4130e3fde
class Dept { public string Name { get; set; } } class Emp { public string Name { get; set; } public Dept Dept { get; set; } } class Program
▶ 実行可
ハマり②: 射影の途中で null を踏んで NullReferenceException
#e34d11d16676
