列表中的多个对象,C#

时间:2010-06-07 15:09:36

标签: c# wpf list

我正在寻找与List<T>类似的内容,这样我就可以拥有多个T。例如:List<TabItem, DataGrid, int, string, ...> = new List<TabItem, DataGrid, int, string, ...>()

7 个答案:

答案 0 :(得分:14)

如果您使用的是.NET 4,则可以使用List<Tuple<T1, T2, ...>>

否则,您的选择是实现自己的类型。

答案 1 :(得分:7)

创建一个定义数据结构的类,然后执行

var list = new List<MyClass>();

答案 2 :(得分:1)

通常情况下,您只有List<MyClass> MyClass将所有其他成员作为成员。

答案 3 :(得分:1)

如果它可以有任何旧类型,那么你需要使用ArrayList。

如果你提前知道你在那里会有什么,那么你应该创建自己的结构,或者使用元组。

答案 4 :(得分:-1)

看起来你在List<object>之后?

答案 5 :(得分:-1)

如果您使用的是.net 4.0,则最好使用元组。但是如果你工作在3.5或更低,多维对象数组是好的。这是代码。我在对象数组中添加了3种不同的类型,并将其推送到列表中。可能不是您的问题的最佳解决方案,可以使用对象数组和列表实现。看看代码。

class Program
{
    static void Main(string[] args)
    {
        object[,] OneObject = new object[1,3]{ {"C Sharp",4,3.5 }};
        List<object> MyList = new List<object>();
        MyList.Add(OneObject);
        object[,] addObject = new object[1,3]{{"Java",1,1.1}};
        MyList.Add(addObject);

        foreach(object SingleObject in MyList)
        {
            object[,] MyObject = (object[,])SingleObject;

            Console.WriteLine("{0},{1},{2}", MyObject[0, 0], MyObject[0, 1], MyObject[0, 2]);
        }  

        Console.Read();
    }
}

答案 6 :(得分:-1)

您可以在此处为旧版本功能提供机会,而不是尝试使用C#4。

这里似乎你不需要强类型集合,在这种情况下,ArrayList是最好的选择。