我想在List of Strings中进行搜索,但是搜索查询不需要按照结果的顺序进行。
假设我有一个字符串列表
List<String> a = [
Fracture of right arm,
Fracture of left arm,
Fracture of right leg,
Fracture of left leg,
];
,我想实现一个搜索过滤器,当我输入fracture right
时,结果将是
Fracture of right leg
Fracture of right arm
如何在Flutter中执行此操作?因为颤振contains()
只检测到I型fracture **of** right
你可以试试:
List<String> a = [
"Fracture of right arm",
"Fracture of left arm",
"Fracture of right leg",
"Fracture of left leg",
];
String query = "fracture right";
List<String> terms = query.toLowerCase().split(" ");
List<String> matches = a.where(
(el) {
var elLower = el.toLowerCase();
for (var term in terms) {
if (!elLower.contains(term)) {
return false;
}
}
return true;
},
).toList();
print(matches);
请注意,无论顺序如何,它都会找到匹配项,您可以修改它以禁止这种情况。
你可以试试下面的代码:
var aFilter = a.where((p0) => (p0.toLowerCase().contains("fracture of right")).toList();
你得到一个包含过滤元素的新列表。