where
возвращает итерацию, которую необходимо преобразовать обратно в список при использовании списка. Кроме того, вы храните данные неправильно. Тип списка Posts
, поэтому вы должны хранить сообщения в списке, а не на карте или в списке карт. См. Следующий код:
class Posts {
String id;
String name;
Posts({this.id, this.name});
}
void main() {
List<Posts> _items = [
Posts(
id: "1",
name: "NS200",
),
Posts(
id: "2",
name: "assa",
),
Posts(
id: "3",
name: "NS200",
),
];
List<Posts> _newList = [];
_newList = _items.where((item) => item.name == "NS200").toList();
for (var item in _newList) {
print('${item.id} - ${item.name}');
}
}
С помощью where
вы можете проверить, совпадает ли строка, которую вы хотите проверить, с именем каждого элемента списка. Если он совпадает, он вернет true, иначе false. Затем вы можете преобразовать его в список, используя toList()
.
. Вы можете обернуть фильтр logi c в функцию, чтобы вызывать его в любое время.
List<Posts> _newList = [];
void filterList() {
_newList = _items.where((item) => item.name == "NS200").toList();
}
filterList();
for (var item in _newList) {
print('${item.id} - ${item.name}');
}