【问题标题】:Is it possible to store multiple data types in an ArrayList using C#?是否可以使用 C# 在 ArrayList 中存储多种数据类型?
【发布时间】: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
  • 您在这里考虑的用例是什么?

标签: c#


【解决方案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 提到的那样,以后再处理它们会很痛苦。

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

    【讨论】:

      猜你喜欢
      • 2013-07-12
      • 1970-01-01
      • 2021-11-16
      • 2019-01-21
      • 2017-06-26
      • 2013-03-09
      • 2017-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多