我有一个List<String>
我想创建一个 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);
}
它可以工作,但是很难看。有没有更干净的方法来做到这一点?
最佳答案
List.generate(n, (_) => List.generate(n, (_) => <String>{}));
关于collections - 如何在 Dart 中创建矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56767918/