Инициализировать общий объект с неизвестным типом

Как инициализировать список, содержащий общие объекты, типы которых могут быть разными?

Например, у меня есть следующее:

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

Как вы знаете, < > недействительный синтаксис. Однако иногда тип, переданный в Where, будет строкой, а иногда это DateTime и т.д. Я попытался использовать объект как инициализированный тип, но это тоже не работает.

Ответ 1

Ну, вы действительно не дали достаточно контекста (что SqlWhere?), но обычно вы используете параметр типа:

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

   public Foo()
   {
       wheres = new List<T>();
   }
}

Если вы хотите, чтобы одна коллекция содержала несколько несвязанных типов значений, вам придется использовать List<object>

Ответ 2

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