Как преобразовать List <List <int>> в многомерный массив - PullRequest
29 голосов
/ 04 июня 2011

Как лучше всего преобразовать список в массив типа int[][]?

List<List<int>> lst = new List<List<int>>();

Ответы [ 4 ]

50 голосов
/ 04 июня 2011
int[][] arrays = lst.Select(a => a.ToArray()).ToArray();
5 голосов
/ 04 июня 2011

С LINQ все просто:

lst.Select(l => l.ToArray()).ToArray()

Если бы вы действительно хотели двумерный массив (int[,], а не int[][]), это было бы более сложно, и лучшим решением, вероятно, было бы использование вложенных for s.

2 голосов
/ 04 июня 2011

Вы можете легко сделать это, используя linq.

int[][] arrays = lst.Select(a => a.ToArray()).ToArray();

но если вам нужен другой способ, вы можете перебрать список и вручную сгенерировать массив 2d.

как перебрать вложенный список

0 голосов
/ 04 июня 2011

Нет библиотечной функции для этого.

Вам нужно будет сделать это с помощью циклов.

int[][] newlist = new int[lst.Size][];
for (int i = 0; i < lst.Size; i++)
{
    List<int> sublist = lst.ElementAt(i);
    newlist[i] = new int[sublis.Size];
    for (int j = 0; j < sublist.Size; j++)
    {
        newlist[i][j] = sublist.ElementAt(j);
    }
}

Вот, пожалуйста!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...