C#
パターン②: 匿名型へ整形(複数列をまとめて画面/CSV用に)
出典: C# LINQ Select の3パターン — 単純射影 / 匿名型整形 / インデックス付きの使い分け — 最短対処: コピペで動く3つの Select / パターン②: 匿名型へ整形(複数列をまとめて画面/CSV用に)
var rows = dt.AsEnumerable().Select(r => new
{
Id = r.Field<int>("Id"),
Name = r.Field<string>("Name"),
Dept = r.Field<string>("Dept")
}).ToList();
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「最短対処: コピペで動く3つの Select / パターン②: 匿名型へ整形(複数列をまとめて画面/CSV用に)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
6 件public class Employee { public int Id { get; set; } public string Name { get; set; }未収録
最短対処: コピペで動く3つの Select
#fa5486377d42
// 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 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
