在C#中将不同类型的对象/变量添加到单个List中?

时间:2017-08-08 16:18:06

标签: c# generics

我有一个通用类定义为:

public class MyClass<T> {
   // some properties
}

public class CustomClass {
   // some properties
}

我有三个这样的类的实例定义如下:

MyClass<int> instance1 = new MyClass<int>();
MyClass<string> instance2 = new MyClass<string>();
MyClass<CustomClass> instance3 = new MyClass<CustomClass>();

另外,我必须存储一些原始类型

string s1 = "My string";
int i1 = 5;

如何创建可包含所有上述变量的单个列表?

2 个答案:

答案 0 :(得分:6)

如果您可以为这三种类型中的每种类型找到一个通用界面并创建它,那么您将能够创建一个可以占用所有三种类型的List<IMyClass>

您可以阅读here以了解有关接口的更多信息。

只要MyClass<T>实现了该接口,那么列表就会全部接受它们。

答案 1 :(得分:3)

怎么样:

var myList = new List<object> {instance1, instance2, instance3};