如何获取List项的Type并添加该类型的对象?

时间:2015-03-26 09:23:21

标签: c# list types

我必须填写几个清单。为了使重复代码无效,我认为是通用方法。如何正确获取列表项的类型,而不是创建该类型的新对象?

我粗略地了解它应该如何运作:

public void fillLookups(List<object> myList)
{
    Type parameterType = myList.GetType().GetGenericArguments().Single();
    parameterType instance = (parameterType)Activator.CreateInstance(objectType);

    myList.Add(instance);
    ...

}

1 个答案:

答案 0 :(得分:3)

试试这个:

static void AddSomeInstances<T>(List<T> list) where T : new()
{
    T newItem = new T();
    list.Add(newItem);
}

static void Main(String[] args)
{
    List<int> test = new List<int>();

    // 0
    Console.WriteLine(test.Count);

    AddSomeInstances(test);

    // 1
    Console.WriteLine(test.Count);
}