Как я могу вернуться к исходному списку после фильтрации ListView в Flutter?

#flutter #flutter-listview

Вопрос:

Я фильтрую дома по их городскому адресу. Я использую выпадающий фильтр, сначала отображаются все дома ,когда я выбираю конкретный город, например Лондон, он будет фильтровать дома, расположенные в Лондоне, из «Списка домов», но опять же, если я выберу Париж, он попытается отфильтровать дома, расположенные в Париже, из домов, расположенных в Лондоне. Итак, как я могу вернуться к исходному списку домов после каждого фильтра? Я использую эту строку

список домов = новый список домов.где ((u) => (u.адрес.содержит(город))).тоЛист();

Ответ №1:

Вы должны сохранить копию своего списка и добавить что-то подобное, чтобы получить отфильтрованную копию своего списка:

 void main() {
  final a = A();
  print(a.l);
  print(a.list);
}

class A {
  List<int> list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];

  List<int> get l => [...list.where((i) => i > 5)];
}
 

Комментарии:

1. это решит проблему, но если я использую 10 разных городов, я должен сделать 10 разных копий?