假設我有這個類:
class Car {
late String make;
late int year;
Car({required this.make, required this.year});
}
如何創建一個基于查詢引數過濾汽車串列的函式?
使用此函式作為參考:
void filterCarsList(String query) {
List<Car> cars = [
Car(make: "Benz", year: 2021),
Car(make: "BMW", year: 2016),
Car(make: "Ford", year: 1999),
Car(make: "Benz", year: 2009),
];
List<Car> filteredList = [];
filteredList = cars.where((e) => (e.make == query)).toList();
print(filteredList);
return;
}
我正在嘗試做的是create a search functionality。
例如:如果query == "b",那么 2 Benz 和 BMW 物件應該在filteredList 中。如果是query == "be",則 2 個 Benz 物件應該在filteredList 中。
該功能目前有效,但make需要輸入整個字串。例如,對于要回傳的 Benz 物件,query 需要等于“Benz”。我很確定我需要使用 RegEx,但我真的不知道從哪里開始。有任何想法嗎?
uj5u.com熱心網友回復:
你所做的make是等于query它的手段make,query應該是一樣的。
要解決此問題,您需要使用這樣的contains方法
filteredList = cars.where((e) => (e.make.toLowerCase().contains(query.toLowerCase()))).toList();
這對你有用。
uj5u.com熱心網友回復:
您可以使用contains上的函式string來實作這一點。
filteredList = cars.where((e) => (e.make.contains(query))).toList();
并添加兩種情況的結果,您可以添加
filteredList = cars.where((e) => (e.make.toLowerCase().contains(query.toLowercase()))).toList();
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/382758.html
