在 dart 中搜索列表和列表中的剩余单词

Posted

技术标签:

【中文标题】在 dart 中搜索列表和列表中的剩余单词【英文标题】:search List and remaining word in the list in dart 【发布时间】:2021-11-24 14:12:30 【问题描述】:
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

【问题讨论】:

【参考方案1】:

你可以使用这个技巧。

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]

【讨论】:

请添加3个点的引用,以便他清楚地理解操作 ... 称为扩展运算符。你可以在这里找到更多关于它的信息。 dart.dev/guides/language/language-tour#spread-operator

以上是关于在 dart 中搜索列表和列表中的剩余单词的主要内容,如果未能解决你的问题,请参考以下文章

表中的存储过程列表

创建一个倒计时器,为列表中的每个值每5秒打印一次剩余时间

搜索包含列表中的单词并具有特定文件扩展名的文件名

在CLOB中搜索列表/表中的单词

如何在 Flutter dart 的列表中的循环内附加数据?

排除正则表达式搜索中的单词列表