我可以存储不同类型的C#阵列?

时间:2019-01-31 08:54:11

标签: c# arrays

我想存储在C#的阵列的多个数据类型。我研究了这一点,并找到了一个答案。例如:在使用的对象类型,其中码是这样的

object[] array = new object[2];

还有其他方法可以实现吗?

2 个答案:

答案 0 :(得分:4)

这取决于您计划存储在数组中的数据类型。
要在同一数组中存储不同的数据类型,必须使用它们的共同祖先-object,因为.Net框架中的最终基类将使您能够在此数组中存储任何数据类型。

但是,如果计划存储从更特定的基类派生的类型,则可以使用该基类。
例如,如果您有一个Animal基类,而派生类是CatDogTigerSnake,而您想将所有这些存储在一个数组,则可以使用Animal数组来完成。

请注意,这也适用于接口。如果您有多个都在实现相同接口的类,则可以使用该接口的数组。例如:var myArray = new INotifyPropertyChanged[3]; 在该数组内,您可以放置​​实现该接口的任何类。

答案 1 :(得分:2)

您可以使用ArrayList而不是数组来存储具有多种数据类型的值。

类似的东西:

   ArrayList a1 = new ArrayList();  //It contains List of object but we can't perform LINQ operations
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);

更优雅的方法是使用List<Object>

   List<Object> a1 = new List<Object>();
   a1.Add(1);
   a1.Add("Example");
   a1.Add(true);

有关Array, ArrayList and List

的更多信息

POC:.net Fiddle