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

5
在C#中,我可以在ArrayList中存储多种数据类型吗? 比如;
myArrayList.Add(false);
myArrayList.Add("abc");
myarrayList.Add(26);
myArrayList.Add(obj);

我知道可以制作一个DataTable或一个类来实现它。

但是,请告诉我:这是否可行?如果是,作为集合类的缺点是什么?


2
是的,这是可能的(并且它将按照输入的方式工作!)...但是以后处理“一堆object”通常也很麻烦。静态/强类型很好;使用它 - 我建议使用List<T>而不是[旧的]ArrayList - user166390
1
你在考虑什么使用情况? - Bedasso
3个回答

9
可以像这样存储。
ArrayList aa = new ArrayList();
aa.Add(false);
aa.Add(1);
aa.Add("Name");

ArrayList属于C#没有泛型时代的产物。在新版本.NET(>= 2.0)中,它已经被List取代,因此你不应该在新代码中使用ArrayList,除非你需要与使用ArrayList的旧API接口交互。

ArrayList和List在C#中的区别


另一种解决方案是创建匿名类型的通用列表。请查看此链接 - Shaiju T

1

我猜 List<object> 可以帮到你。


0
是的,你可以在ArrayList中存储不同类型的对象,但正如pst所提到的那样,以后处理它们会很麻烦。
如果这些值彼此相关,你最好编写一个类来保存它们。这样会有强类型,并且这些值将被命名,这样其他人看代码时有机会理解正在发生的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接