David Brown
David Brown

Reputation: 36239

Initialize generic object with unknown type

How can I initialize a list containing generic objects whose types can be different?

For example, I have the following:

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

As you know, <> is not valid syntax. However, sometimes the type passed to Where will be a string and sometimes it will be DateTime, etc. I tried using object as the initialized type, but that doesn't work either.

Upvotes: 3

Views: 4445

Answers (2)

Jon Skeet
Jon Skeet

Reputation: 1499790

Well, you haven't really given enough context (what's SqlWhere?) but normally you'd use a type parameter:

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

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

If you want a single collection to contain multiple unrelated types of values, however, you will have to use List<object>

Upvotes: 11

Sergio
Sergio

Reputation: 8259

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

Upvotes: 1

Related Questions