是否可以使用 C# 在 ArrayList 中存储多种数据类型?

Posted

技术标签:

【中文标题】是否可以使用 C# 在 ArrayList 中存储多种数据类型?【英文标题】:Is it possible to store multiple data types in an ArrayList using C#? 【发布时间】:2012-10-18 11:39:28 【问题描述】:

在 C# 中,我可以在 ArrayList 中存储多种数据类型吗? 喜欢;

myArrayList.Add(false);
myArrayList.Add("abc");
myarrayList.Add(26);
myArrayList.Add(obj);

我知道我可以为它制作一个 DataTable 或一个类。

但是,请告诉我:这可能吗?如果是这样,作为一个集合类的缺点是什么?

【问题讨论】:

是的,这是可能的(并且它会像输入的那样工作!)..但它也经常是一个 PITA 来处理“一堆objects”。静态/强类型很好;使用它 - 为此我建议使用 List<T> 而不是 [旧的] ArrayList 您在这里考虑的用例是什么? 【参考方案1】:

我猜List<object> 帮助你。

【讨论】:

【参考方案2】:

是的,你可以这样存储

ArrayList aa = new ArrayList();
aa.Add(false);
aa.Add(1);
aa.Add("Name");

ArrayList 属于 C# 没有泛型的时代。它已被弃用,取而代之的是 List。您不应在面向 .NET >= 2.0 的新代码中使用 ArrayList,除非您必须与使用它的旧 API 交互。

ArrayList vs List<> in C#

【讨论】:

另一种解决方案创建匿名类型的通用列表。检查this。【参考方案3】:

是的,您可以在 ArrayList 中存储不同类型的对象,但是就像 pst 提到的那样,以后再处理它们会很痛苦。

如果这些值以某种方式相关,则最好编写一个类来保存它们。这将为您提供强类型,并且将命名值,以便其他查看代码的人有机会了解正在发生的事情。

【讨论】:

以上是关于是否可以使用 C# 在 ArrayList 中存储多种数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

C#中的ArrayList

是否可以将 ArrayList 索引作为 listkey 存储到 Struts 2 选择框中?

C#中数组ArrayList和List三者的区别

C#中数组ArrayList和List三者的区别

C#中数组ArrayList和List三者的区别

转载 C#中数组ArrayList和List三者的区别