【问题标题】:Multiple objects in list, C#列表中的多个对象,C#
【发布时间】:2010-06-07 15:09:36
【问题描述】:

我正在寻找类似于List<T> 的东西,这将允许我拥有多个T。例如:List<TabItem, DataGrid, int, string, ...> = new List<TabItem, DataGrid, int, string, ...>()

【问题讨论】:

  • 您想要一个可以存储任何这些类型的通用列表...还是想要一个可以存储这些类型的分组的通用列表(也就是说,每个元素都是一个关联的 TabItem, DataGrid、int、string 等)?
  • 理想情况下......您将如何使用或使用此列表?

标签: c# wpf list


【解决方案1】:

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

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

【讨论】:

  • 你在我输入答案时输入了这个。
  • 不需要 List>,只要 Tuple 就可以了。
【解决方案2】:

创建一个定义你的数据结构的类,然后做

var list = new List<MyClass>();

【讨论】:

【解决方案3】:

通常你只有List&lt;MyClass&gt;,而MyClass 拥有所有其他成员作为成员。

【讨论】:

    【解决方案4】:

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

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

    【讨论】:

      【解决方案5】:

      看起来你在关注List&lt;object&gt;

      【讨论】:

        【解决方案6】:

        如果您使用的是 .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();
            }
        }
        

        【讨论】:

          【解决方案7】:

          您可以在这里给旧版本的功能一个机会,而不是尝试使用 C# 4。

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

          【讨论】:

            猜你喜欢
            • 2020-03-04
            • 2023-03-27
            • 1970-01-01
            • 1970-01-01
            • 2021-12-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多