C#3.0の匿名型を使ってて、ふと思ったこと
匿名型はこんな風に書ける
プロパティ名を書いて、値を指定するだけ。
var me = new { Name = "yuji", Age = 26, Like = "C#" };
プロパティ名は省略できる。
省略すると同じプロパティ名になる。
var me2 = new { Name = me.Name , me.Age };//Ageが省略したやつ
もちろん、ローカル変数でもおk
var name = "yuji";
var me3 = new { name };
だったら、こうしたくない?
var Name = "yuji";
var me4 = new { Name };
ローカル変数をPascal 形式で書きましたが何か?(^ω^)
駄目ですか、そうですか……
Select文の中とかで書きたくならないですか?
var data = new[]
{
new { Name = "yuji", Age = 26, Life = 100},
new { Name = "adeton", Age = 3, Life = 9999 }
};var sum4 = data.GroupBy(d => d.Age/10)
.Select(gp =>
{
var Life = gp.Sum(d => d.Life);
return new
{
Life,
Title = string.Format("{0}代は、合計{1}です。", gp.Key*10, Life),
};
});
ないですか、そうですか、そうですね、名前書くぐらいサボんなって話ですよね。
そもそも、同じ名前にならない事の方が多い(正しい)ですよね。(↑だとTotalLifeとか?)
LINQでたくさん帳票作ってたら、少しでも手抜きしたくなっただけですorz