初始化未知类型的通用对象

Dav*_*own 3 c# generics types

如何初始化包含类型可能不同的通用对象的列表?

例如,我有以下内容:

this.Wheres = new List<Where<>>();
Run Code Online (Sandbox Code Playgroud)

如您所知,<>是无效的语法.但是,有时传递给Where的类型将是一个字符串,有时它将是DateTime等.我尝试使用object作为初始化类型,但这也不起作用.

Jon*_*eet 10

好吧,你还没有给出足够的上下文(什么是SqlWhere?),但通常你会使用一个类型参数:

public class Foo<T>
{
   private IList<T> wheres;

   public Foo()
   {
       wheres = new List<T>();
   }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您希望单个集合包含多个不相关的值类型,则必须使用 List<object>