6

我需要创建一些东西的对/三元组并将其存储在某个地方。我该怎么做?

我试过:

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

但后来我想:List<what>

我可以使用动态,但我想要智能感知。

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

有什么解决办法吗?

4

3 回答 3

13

您可以使用类型推断

var items = Enumerable.Range(0,100)
                      .Select(i => new { a=i , b="lala", c=4.5m })
                      .ToList(); // not necessary (you can use IEnumerable)
于 2013-02-05T07:30:00.003 回答
3

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

var lstOfSmth = Enumerable.Range(0, 100)
                            .Select(i => new { a = i, b = "lala", c = 4.5m })
                            .ToList();
于 2013-02-05T07:31:43.487 回答
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);
}
于 2013-02-05T07:45:26.933 回答