this will create a List<WhatEverIsInMyType> :
var listType = typeof(List<>).MakeGenericType(myType);
Now you need to create an instance, but you covered it:
var list = Activator.CreateInstance(listType);
Unfortunately, we use reflection, so the exact types are not known at compile time, but not everything is lost, you can use non-native types:
var list = (IList)Activator.CreateInstance(listType);
Now you can use methods like Add Remove to use your list, but be careful because you will get runtime exceptions if the types don't match the math.
source share