匿名类型列表?

时间:2013-02-05 07:25:36

标签: c# .net anonymous-types

我需要创建某事的对/三元组并将其存储在某处。我该怎么办?

我试过了:

for (int i = 0; i < 100; i++)
{
    var item=new { a=i , b="lala" ,c=4.5m}; //anonymous type
}

但后来我想:List<what>

我可以使用动态,但我想要Intellisense。

(我也可以使用Tuple<int,string,decimal>但是如果我已经拥有了我需要的东西(=new { a=i , b="lala" ,c=4.5m};),我为什么要使用其他类型(元组)?)

有没有解决方案?

3 个答案:

答案 0 :(得分:14)

您可以使用类型推断

var items = Enumerable.Range(0,100)
                      .Select(i => new { a=i , b="lala", c=4.5m })
                      .ToList(); // not necessary (you can use IEnumerable)

答案 1 :(得分:3)

不确定,如何填写for中的字段,但是您可以尝试:

var lstOfSmth = Enumerable.Range(0, 100)
                            .Select(i => new { a = i, b = "lala", c = 4.5m })
                            .ToList();

答案 2 :(得分:2)

  

为什么我要使用其他类型(元组)

因为它们的设计完全是为了这个目的。如果你害怕冗长的代码,那么using指令也会受到拯救。

using myPair = Tuple<int,string>;
using myTriple = Tuple<int,string,decimal>;
//...
for (int i = 0; i < 100; i++)
{
    myPair pair = new myPair(1,"string");
    myTriple triple = new myTriple(i,"lala", 4.5);
}