Как создать Список <Type>, где Тип - другой объект Тип - PullRequest
1 голос
/ 21 апреля 2011

1001 * например *

List<Node> myNodeList<node>();
System.Type theType = myNodeList.GetType();
IEnumerable list<theType> = myNodeList;

1 Ответ

3 голосов
/ 21 апреля 2011
//original list
List<Node> nodeList = new List<Node>();

// just get the type of the list
var nodeListType = nodeList.GetType();

// Create a new type for a list containing the original list.
var genericType = typeof (List<>).MakeGenericType(nodeListType);

// and instantiate it.
var listOfLists = (IEnumerable)Activator.CreateInstance(genericType);

Вы также можете сделать универсальную версию:

public static IList<T> CreateOuterlist<T>(T innerList)
{
    return new List<T>();
}

List<Node> nodeList = new List<Node>();
var listOfLists = CreateOuterlist(nodeList);
listOfLists.Add(nodeList);
...