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

如何将Map<DateTime, List>转换为Map<DateTime, int>提取列表首元素用于绘图?

问题描述

我需要处理绘图数据,现有从SQL数据库获取的类型为Map<DateTime, List>的数据:

Map<DateTime, List> data;

该列表包含多个数据库返回值,但我仅需将列表索引为0的元素作为Y值,请问如何简便地将其转换为以下类型?

Map<DateTime, int> inputData
解决方案

基础转换(假设列表非空且首元素为int类型)

直接用Map.map()遍历原Map,提取每个列表的第一个元素并强转类型:

Map<DateTime, int> inputData = data.map(
  (date, values) => MapEntry(date, values[0] as int),
);

处理首元素非int的情况

如果列表首元素是字符串等可转为int的类型,先做字符串转换:

Map<DateTime, int> inputData = data.map(
  (date, values) => MapEntry(date, int.parse(values[0].toString())),
);

兼容空列表的安全写法

如果存在空列表的情况,添加非空判断避免报错(示例默认空列表时Y值设为0,可按需调整):

Map<DateTime, int> inputData = data.map(
  (date, values) => MapEntry(
    date,
    values.isNotEmpty ? (values[0] as int) : 0,
  ),
);

内容的提问来源于stack exchange,提问作者Coder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:25:38