匿名型の Generic リスト
C# 3.0 の匿名型&型推論、最初はものすごく気持ち悪かったけども、最近どんどん変態的な使い方を覚え始めたかも。
LINQ では、匿名型の IEnumerable を使うことになるわけですけども、たまに、空のリストを用意して、それに後から匿名型の要素を追加したい場合が。匿名型の Generic リストをどうやって作ろうか悩んだ結果、以下のようなコードに。
var list = Enumerable.Range(0 0) .Select(x => new { Name = "", Value = 0.0 }) .ToList(); list.Add(new { Name = "test1", Value = 1.0 }); list.Add(new { Name = "test2", Value = 2.0 });
関数を書くのが面倒でなければ以下のコードでいいんですけど。
static void Main(string[] args) { var l = List(new { Name = "", Value = 0.0 }); } static List<T> List<T>(T x) { return new List<T>(); }
この中身たった1行の関数を書くのをサボるために上のコードを書く辺り、すっかり毒づいた感じ。