В этом вопросе я увидел выражение анонимного типа с незнакомым синтаксисом:
new { MyObjectID = g.Key, totalSum }
Сначала я подумал, что это (, totalSum }
) синтаксическая ошибка, поскольку ключ не указан, но он компилируется и работает в C# 3.0. Я проверил этот синтаксис в LINQPad (2.x -> C#3):
var y = ":-)";
var q = new { Y = y, y, y.Length, };
q.Dump();
Результат:
(anon type) {
Y = ":-)",
y = ":-)",
Length = 3
}
Где в спецификации определен этот синтаксис? (Ответы должны включать соответствующую ссылку и соответствующую выдержку.)
И, что более субъективно (не стесняйтесь не отвечать), это хороший синтаксис/сокращение для пропуска ключей? Я не использовал его до тех пор, пока не знал о нем, и я не очень очарован этим синтаксическим сахаром.