In Java I am able to have a list of classes like:
List<Class>
But how do I do this in C#?
If you mean a list of actual classes, not instances of a class, then you can use Type instead of Class. Something like this if you have instances of each class:
List<Type> types = new List<Type>();
types.Add(someClassInstance.GetType());
types.Add(someOtherClassInstance.GetType());
Or this if you know the actual classes:
List<Type> types = new List<Type>();
types.Add(typeof(SomeClass));
types.Add(typeof(SomeOtherClass));
More on typeof(...) vs ...GetType() here
To actually instantiate a class given a classes Type you can use Activator or reflection. See this post for information on that. It can get a little complicated however when the compiler doesn't know about the constructors/parameters and such.
// Create an instance of types[0] using the default constructor
object newObject = Activator.CreateInstance(types[0]);
Or alternatively
// Get all public constructors for types[0]
var ctors = types[0].GetConstructors(BindingFlags.Public);
// Create a class of types[0] using the first constructor
var object = ctors[0].Invoke(new object[] { });
The same basic syntax works in C#:
List<YourClass> list = new List<YourClass>();
This requires you to have using System.Collections.Generic; at the top of your file, which is the namespace which provides most of the generic collections.
If you are attempting to store a list of types, you can use List<System.Type>. Instances of those types could then be constructed via Activator.CreateInstance (which accepts the type) as needed.
var list = new List<ClassName>();??Classor a list of actual Classes?java.lang.Class<T>