C# 初始化类型未知的泛型对象

C# 初始化类型未知的泛型对象,c#,generics,types,C#,Generics,Types,如何初始化包含类型可能不同的泛型对象的列表 例如,我有以下几点: this.Wheres = new List<Where<>>(); this.Wheres=new List(); 如您所知,是无效的语法。但是,有时传递到Where的类型是字符串,有时是DateTime,等等。我尝试使用object作为初始化类型,但也不起作用。this.Where=new List(); this.Wheres = new List<Object>(); 好吧,您实际

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

例如,我有以下几点:

this.Wheres = new List<Where<>>();
this.Wheres=new List();
如您所知,是无效的语法。但是,有时传递到Where的类型是字符串,有时是DateTime,等等。我尝试使用object作为初始化类型,但也不起作用。

this.Where=new List();
this.Wheres = new List<Object>();

好吧,您实际上没有提供足够的上下文(什么是SqlWhere?),但通常您会使用一个类型参数:

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

   public Foo()
   {
       wheres = new List<T>();
   }
}
公共类Foo
{
私人住宅;
公共食物(
{
其中=新列表();
}
}

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

谢谢!为了回答您的问题,查询生成器中的类在哪里。这将添加(取消)装箱并删除类型安全性。如果列表可以由不同的对象类型组成,如何防止这种情况?这是执行OP要求的正确方法。是的,它不是类型安全的。这不是答案的错。