list - 在 dart 中搜索列表和列表中的剩余单词
问题描述
void main(){
List<String> topics = [
'Photography',
'News',
'Facts',
'How-to',
'Technology',
'Science',
'Space',
];
var text='tech';
var _searchResult = topics.where(
(topics) => (topics.contains(text) ||
topics.toLowerCase().contains(text))
);
print(_searchResult.toString());
}
我有一个大约 50-60 个单词的列表。如果我搜索“技术”,它将显示“技术”,但我也想要剩余的词(像那样)......
Technology
Photography
News
Facts
How-to
Science
Space
解决方案
你可以使用这个技巧。
final result = {..._searchResult, ...topics}.toList();
它创建一个地图,您的过滤值首先放入其中。该地图会删除重复项并生成完整列表。
完整代码
List<String> topics = [
'Photography',
'News',
'Facts',
'How-to',
'Technology',
'Science',
'Space',
];
void main() {
final text = 'tec';
final _searchResult = topics
.where((i) => i.toLowerCase().contains(text.toLowerCase()))
.toList();
final result = {..._searchResult, ...topics}.toList();
print(result); // [Technology, Photography, News, Facts, How-to, Science, Space]
}
推荐阅读
- python - Python (TensorFlow) - 连接不同维度的张量对象
- rest - etags 和普通浏览器提供的缓存有什么区别?
- swift - `@Published var name: ClassType` 在 SwiftUI / 手动触发之外_不起作用?
- reactjs - TypeError:未定义不是对象(评估'route.params')
- google-cloud-platform - “80端口被占用;” 在谷歌计算引擎上:(
- c# - 如何让 Serilog 使用来自 json 配置文件的自定义丰富器
- python - 当我在 Windows Powershell 中运行命令时,“访问被拒绝”
- kubernetes - 如何向我的 AKS 发送 Postmanrequest?
- svg - SVG 剪辑“随你”
- node.js - 无法建立隧道套接字