Фильтрация данных — распространенная задача при разработке Flutter, особенно при работе со списком карт, содержащим динамические данные. В этой статье мы рассмотрим несколько методов фильтрации List
Метод 1: использование методаwhere()
Пример кода:
List<Map<String, dynamic>> originalList = [
{'name': 'John', 'age': 25},
{'name': 'Sarah', 'age': 30},
{'name': 'Michael', 'age': 20},
];
List<Map<String, dynamic>> filteredList = originalList.where((item) => item['age'] > 25).toList();
Объяснение:
Метод where()
фильтрует исходный список на основе заданного условия. В этом примере мы фильтруем список, чтобы включать только карты, у которых ключ age имеет значение больше 25.
Метод 2: использование метода saveWhere()
Пример кода:
List<Map<String, dynamic>> originalList = [
{'name': 'John', 'age': 25},
{'name': 'Sarah', 'age': 30},
{'name': 'Michael', 'age': 20},
];
originalList.retainWhere((item) => item['age'] > 25);
Объяснение:
Метод retainWhere()
изменяет исходный список на месте, удаляя элементы, которые не удовлетворяют заданному условию. В этом примере мы сохраняем только те карты, где ключ age имеет значение больше 25.
Метод 3. Использование цикла for
Пример кода:
List<Map<String, dynamic>> originalList = [
{'name': 'John', 'age': 25},
{'name': 'Sarah', 'age': 30},
{'name': 'Michael', 'age': 20},
];
List<Map<String, dynamic>> filteredList = [];
for (var item in originalList) {
if (item['age'] > 25) {
filteredList.add(item);
}
}
Объяснение:
Этот метод вручную перебирает исходный список и добавляет нужные карты в фильтрованный список на основе предоставленного условия.
Метод 4. Использование методаwhereType()
Пример кода:
List<Map<String, dynamic>> originalList = [
{'name': 'John', 'age': 25},
{'name': 'Sarah', 'age': 30},
{'name': 'Michael', 'age': 'unknown'},
];
List<Map<String, dynamic>> filteredList = originalList.whereType<Map<String, dynamic>>().toList();
Объяснение:
Метод whereType()
фильтрует исходный список по типу. В этом примере мы фильтруем список, чтобы он включал только карты типа Map
Фильтрация List
Не забудьте выбрать наиболее подходящий метод с учетом ваших конкретных требований и структуры данных. Приятного кодирования!