Как создать матрицу в Dart? - PullRequest
1 голос
/ 26 июня 2019

У меня есть List<String>, и я хочу создать квадратную матрицу (2-мерный массив / список) размером Set<String> с теми же размерами, что и длина List<String>.

Я пытался использовать

List.filled(entries.length, List.filled(entries.length, Set<String>()));

но проблема в том, что кажется, что каждая строка моей матрицы ссылается на один и тот же экземпляр списка, поэтому изменение значения в одной строке изменяет его и во всех остальных.

Итак, я попытался

List.filled(entries.length, List.from(List.filled(entries.length, Set<String>())));

но у меня все та же проблема. В конце концов я сдался и прибег к

List<List<Set<String>>> matrix = [];

for(int i=0; i<entries.length; i++) {
    List<Set<String>> row = [];
    for (int n = 0; n<entries.length; n++) {
        row.add(Set<String>());
    }
    matrix.add(row);
}

Это работает, но уродливо. Есть ли более чистый способ сделать это?

1 Ответ

4 голосов
/ 26 июня 2019
List.generate(n, (_) => List.generate(n, (_) => <String>{}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...