【问题标题】:Comparing list with another list items and returning it if it has similar items将列表与另一个列表项进行比较,如果有相似项则返回
【发布时间】:2021-02-15 14:49:16
【问题描述】:
class Object1 {
  final String id;
  List<Object1list> lists = [];

  Object1({this.id, this.lists});

class Object1list {
  final String id;
  final String item;

  Object1list({this.id});
}


List<String> searchlist = ['object1','object2','object3'];

我想做的是在“object1list”项目中搜索“任何”与“searchlist”项目匹配的项目,并且 将其作为包含函数返回,但我不知道如何,例如:

return ???.contains(???)

有人可以帮帮我吗?

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    以下功能将帮助您获得匹配的项目:

    bool doSearch(List<String> searchlist, List<String> lists) {
      List<String> matched = [];
      for (String s in searchlist) {
        if (lists.contains(s)) {
          matched.add(s);
        } 
        //else {
        //  return false;  // Uncomment these lines if you want "lists" to contain all searched items
        //}
      }
      return matched.length > 0; // This for 0 or more items matched
    }
    

    【讨论】:

    • 我需要将它作为布尔值返回,因为 .contains 是一个布尔函数。你想让我在这里返回 List,你能解决这个问题吗?
    • @umarbeyoglu 答案已更新。
    【解决方案2】:

    其他方式:

    import 'package:enumerable/enumerable.dart';
    
    void main() {
      final result1 = searchlist.isNotEmpty
          ? searchlist.distinct().length == searchlist.length
          : false;
      print(result1);
    
      // OR
    
      final result2 = searchlist.isNotEmpty
          ? searchlist.toSet().length == searchlist.length
          : false;
      print(result2);
    }
    
    List<String> searchlist = ['object1', 'object2', 'object3', 'object2'];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多