【问题标题】:How to perform a search in array of object flutter?如何在对象颤振数组中执行搜索?
【发布时间】:2022-01-17 12:14:14
【问题描述】:

我有一个包含键和值的地图列表,例如:

map<String, dynamic> my_List = [{"name": "mike", "age": "20"}, {"name":"william","age": "23"}].

我已经尝试过 containsValue 但我不想使用它。

我需要得到的结果是,当我搜索 m 时,我需要得到 [{"name": "mike", "age": "20"}, {"name":"william","age" : "23"}] ,当我搜索 3 时,我需要结果为 [{"name":"william","age": "23"}]。

【问题讨论】:

  • 您使用List&lt;Map&lt;String, dynamic&gt;&gt;而不是实际对象的任何具体原因?因为我认为将这个逻辑放在 Person 类中会更容易,这样就可以跨相关字段进行搜索。
  • 我同意@julemand101。只需使用属性名称和年龄创建一个 User 或 Person 类。您可以将数据转换为 List。然后您可以通过 myList.contains(inputValue) 进行搜索以获取所有匹配项。也可以将其与 .where() 方法结合使用,以定义您是否通过姓名和年龄进行搜索。

标签: list flutter dictionary dart search


【解决方案1】:

您可以按照 julemand101 的建议创建 PersonUser 类,但如果您必须使用 Map,请尝试以下操作:

List<Map<String, dynamic>> search(String input){
 return my_List.where((e) => e["name"].contains(input) || e["age"].contains(input)).toList();
}

【讨论】:

    猜你喜欢
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 2020-04-07
    • 2023-03-18
    • 2021-08-20
    • 1970-01-01
    • 2021-02-06
    相关资源
    最近更新 更多