是否可以使用 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 来处理“一堆object
s”。静态/强类型很好;使用它 - 为此我建议使用 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 中存储多种数据类型?的主要内容,如果未能解决你的问题,请参考以下文章