我想存储在C#的阵列的多个数据类型。我研究了这一点,并找到了一个答案。例如:在使用的对象类型,其中码是这样的
object[] array = new object[2];
还有其他方法可以实现吗?
答案 0 :(得分:4)
这取决于您计划存储在数组中的数据类型。
要在同一数组中存储不同的数据类型,必须使用它们的共同祖先-object
,因为.Net框架中的最终基类将使您能够在此数组中存储任何数据类型。
但是,如果计划存储从更特定的基类派生的类型,则可以使用该基类。
例如,如果您有一个Animal
基类,而派生类是Cat
,Dog
,Tiger
,Snake
,而您想将所有这些存储在一个数组,则可以使用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);
的更多信息
POC:.net Fiddle