I’m trying to store a list of generic objects in a generic list, but I’m having difficulty declaring it. My object looks like:
public class Field<T>
{
public string Name { get; set; }
public string Description { get; set; }
public T Value { get; set; }
/*
...
*/
}
I’d like to create a list of these. My problem is that each object in the list can have a separate type, so that the populated list could contain something like this:
{ Field<DateTime>, Field<int>, Field<double>, Field<DateTime> }
So how do I declare that?
List<Field<?>>
(I’d like to stay as typesafe as possible, so I don’t want to use an ArrayList).
This is situation where it may benefit you to have an abstract base class (or interface) containing the non-generic bits:
Then you can have a
List<Field>. That expresses all the information you actually know about the list. You don’t know the types of the fields’ values, as they can vary from one field to another.