C#匿名元组列表

时间:2010-07-05 01:59:31

标签: c#

有没有人知道更短(希望更优雅)的方式来初始化C#中的匿名类型集合而不是以下方式:

new[] {
     new[] { "B", "Banana" },
     new[] { "C", "Carrot" },
     new[] { "D", "Durian" },
}.Select(x => new {Value = x[0], Text = x[1] };

2 个答案:

答案 0 :(得分:1)

您可以使用单个数组,如下所示:

警告:提前提出恶劣的代码!

object temp = null;

new object[] {
    "B", "Banana",
    "C", "Carrot",
    "D", "Durian" 
}.Select((v, i) => i % 2 == 0 ? (temp = v) : new { Value = temp, Text = v })
 .Where((v, i) => i % 2 == 1)
 .ToArray() //Important!

不要这样做, EVER!

答案 1 :(得分:1)

你几乎拥有它..

var myCollection = new[]
{
    new { Value = "B", Text = "Banana" },
    new { Value = "C", Text = "Carrot" },
    new { Value = "D", Text = "Durian" }
};