Dart中获取值为List的Map内指定嵌套元素的方法
Dart 获取嵌套Map中List内的指定元素
你的res对象是键为整数、值为整数列表的Map结构,要获取值为57的元素,有两种常用实现方式:
固定结构直接按下标取值
如果你确定数据结构不会变动,57固定在键65535对应列表的第9个位置(Dart列表下标从0开始计数,对应下标为8),可以直接链式取值:void main() { Map res = {65535: [198, 28, 231, 228, 87, 210, 255, 0, 57, 30, 14]}; // 先取key为65535的列表,再取索引8对应的元素 int targetValue = res[65535][8]; print(targetValue); // 输出结果:57 }注意:这种写法要求你明确知道键存在、列表长度足够,否则会触发运行时报错,生产环境建议加空判断。
动态查找目标值
如果列表元素位置不固定,需要在整个嵌套结构中搜索值为57的元素,可以用遍历+匹配的方式获取:void main() { Map res = {65535: [198, 28, 231, 228, 87, 210, 255, 0, 57, 30, 14]}; int? targetValue; // 遍历Map中所有存储的列表 for (final numList in res.values) { // 在当前列表中匹配值为57的元素 targetValue = numList.firstWhere( (element) => element == 57, orElse: () => null, ); // 找到目标值就终止遍历 if (targetValue != null) break; } print(targetValue); // 找到输出57,未找到输出null }
额外建议:如果是支持空安全的Dart版本,最好给res明确声明类型为Map<int, List<int>>,可以在编译期就排查出类型不匹配的问题,减少运行时异常。
内容的提问来源于stack exchange,提问作者Ghabrimouheb
相关产品推荐
相关产品推荐

