Что быстрый путь состоит в том, чтобы преобразовать Список <Список <строка>> для строкового представления [] []?

.ToArray не делает этого

8
задан KevinDeus 1 July 2010 в 22:40
поделиться

3 ответа

Один быстрый вариант существующих ответов, в котором используется преобразование группы методов вместо лямбда-выражения:

string[][] array = lists.Select(Enumerable.ToArray).ToArray();

Теоретически это будет немного быстрее, так как на один уровень меньше абстракция в делегате передана в Select .

Помните, дети: когда вы видите лямбда-выражение такой формы:

foo => foo.SomeMethod()

подумайте об использовании преобразования группы методов. Часто это не будет лучше, но иногда будет :)

Вернуться к List > тоже легко:

List<List<string>> lists = array.Select(Enumerable.ToList).ToList();
9
ответ дан 5 December 2019 в 07:10
поделиться

Linq - отличный вариант.

List<List<String>> list = ....;
string[][] array = list.Select(l => l.ToArray()).ToArray();

чтобы разбить его немного подробнее, типы работают следующим образом:

List<List<String>> list = ....;
IEnumerable<String[]> temp = list.Select(l => l.ToArray());
String[][] array = temp.ToArray();
12
ответ дан 5 December 2019 в 07:10
поделиться
List<List<string>> myStrings;

myStrings.Select(l => l.ToArray()).ToArray();

(LINQ rock)

2
ответ дан 5 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: