IEnumerable Collection声明&人口

时间:2011-05-31 09:09:12

标签: c# generics

我想创建一个类型为IEnumerable<string,int,int>

的IEnumerable集合

如何创建它&amp;用数据填充它?

欢迎任何建议!

2 个答案:

答案 0 :(得分:4)

您可以使用Tuple<string,int,int>作为IEnumerable<T>的通用类型:

var myData = new List<Tuple<string,int,int>>();

myData.Add(new Tuple<string,int,int>("myString", 1, 2));

但是,如果此数据具有超出单一方法的含义,我建议创建一个包含您的字段的类,以用作IEnumerable<T>的泛型类型。

答案 1 :(得分:1)

严格地说,你不能创建任何东西的IEnumerable集合 - 因为IEnumerable是一个接口,你不能创建接口的实例。您必须创建一个实现IEnumerable 1 的类的实例。

所以你想要像List<string, int, int>这样的东西,但正如Oded暗示的那样,这是不可能的,因为List<T>只能包含一个泛型参数(这也是IEnumerable的)。

因此,Oded建议您使用“包装”类将三个值包含在一个值中,该值可用作列表中的T

如果您最后的评论建议,您不知道如何创建和填充课程或列表,我认为您需要做更多的研究......

1 我猜Enumerable.Range在这里可能算作伪异常......