Если у меня есть List<dynamic> dynamicList
, что на самом деле List<List<double>>
, но если я пытаюсь разыграть его, используя,
dynamicList.cast<List<List<double>>>();
Это дает "не ошибка подтипа",
Поэтому, чтобы преобразовать это в List<List<double>>
Мне нужно,
List<List<double>> converted = [];
for(int i = 0; i < dynamicList.shape[0]; i++){
List<double> subList = [];
for(int j = 0; j < dynamicList.shape[1]; j++){
if(dynamicList[i][j] is double){
subList.add((dynamicList[i][j] as double));
}
}
converted.add(subList);
}
extension Util on List{
List<int> get shape {
if (isEmpty) {
return [];
}
var list = this as dynamic;
var shape = <int>[];
while (list is List) {
shape.add((list as List).length);
list = list.elementAt(0);
}
return shape;
}
}
Что может быть лучшим и более обобщенным способом сделать это?