You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 17:24:21