在列表中存储不同类型?

Mic*_*x2a 11 c# arrays

相关:多种数据类型的列表?

我想知道如何在数组中存储不同的数组类型(包括系统类型).

上面的问题涉及如何使用接口创建仅允许用户定义的类的列表.但是,如果我想要一个只接受双打和字符串的列表呢?我写的双打和课程怎么样?如果一个列表只接受一个写入的类和一个别人写的类(所以我不能在第三方类中添加一个接口,我认为).

我考虑过使用List<object>,但我不知道这是否是公认的最佳做法.

Sam*_*ich 5

您不仅可以指定自定义类型.List<int>,List<double>,List<string>将工作为好.如果需要存储混合类型 - 您需要为所有类型指定最接近的基类.在List<object>可以存储任何类型的实例.

  • 但是,这将不允许您访问数组内类型的属性。即,如果您尝试使用`List&lt;type1|type2&gt;`,那么您将其命名为`List&lt;object&gt;` 以包含type1 和type2。您将无法搜索 `List.FirstOrDefault(i =&gt; i.PropertyOfType1AndType2)`(假设 type1&amp;type2 具有相似的属性)。 (2认同)

Fra*_*oto 5

如果你愿意放弃类型安全,你可以使用ArrayList,这是使用pre-generics列表的唯一方法.

你可以在它周围放一些包装代码,只接受双打和字符串.