从 Map<String,List<String>> 获取密钥,知道列表值之一

Posted

技术标签:

【中文标题】从 Map<String,List<String>> 获取密钥,知道列表值之一【英文标题】:get key from Map<String,List<String>> knowing one of the List values 【发布时间】:2022-01-17 06:20:27 【问题描述】:

我有一张地图

Map<String, List> map1 = a: [1,2,3,4], b: [5,6,7,8], c: [9,10,11];

我知道其中一个列表的值之一 - 1..11。 如何获取该值所属的地图实体的键 - a、b、c?

【问题讨论】:

【参考方案1】:

我找到了解决办法

int valueToLookFor = 5;

String keyName = map1.keys.firstWhere((key) => map1[key]!.contains(valueToLookFor));

【讨论】:

【参考方案2】:

试试这个,search 是您要在数组中查找的值。

请注意,如果在任何地方都找不到该值,firstWhere 可能会给您一个错误。

void main() 
  final data = 
    'a': [1, 2, 3, 4],
    'b': [5, 6, 7, 8],
    'c': [9, 10, 11]
  ;

  final search = 4;

  final selected = data.keys.firstWhere((key) 
    return data[key]!.contains(search);
  );

  print(selected); // a

【讨论】:

是的,实际上我找到了相同的解决方案,并且我们在同一时间发布了答案jaja...无论如何,将您的回复标记为解决方案。谢谢

以上是关于从 Map<String,List<String>> 获取密钥,知道列表值之一的主要内容,如果未能解决你的问题,请参考以下文章

java 从数据库中返回来的数据list<Map<String ,Object>> 做拼接处理

怎么通过key从 Map<String, List<String>> map 里面取value?

未处理的异常:从 jsonplaceholder.typecode.com/photos 获取 Json 时,类型“List<dynamic>”不是“Map<String, dyna

java将数据从List转换Map

从 initializer_list 构造 std::map<T, unique_ptr<S>> 时出错

从 Stream 检索快照时,Flutter/Firestore 返回类型 List<Review> 不是“Map<String, dynamic>”类型的子类型