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

如何用LINQ将Test类列表转换为minVal和maxVal的二维数组?

问题描述

我有一个包含不同属性的Test类列表,类定义如下:

public class Test
{
    public string grade { get; set; }
    public int minVal { get; set; }
    public int maxVal { get; set; }
}

我需要通过选择minVal和maxVal两列,生成类似[[0,10],[11,20],...]格式的二维数组,以便在JavaScript中用于填充ChartJS图表。我尝试过以下几种解决方案:

var result = list.Select(team => new string[] { "["+team.minVal +","+ team.maxVal +"]"}).ToArray(); 
var result = list.Select(team => new string[] { team.minVal ,team.maxVal }).ToArray();

但未能得到想要的二维数组格式[[minVal,maxVal],[minVal,maxVal],...],请问是否有单行LINQ查询的解决方案?

解决方案

直接生成数值类型的二维数组即可,单行LINQ写法如下:

var result = list.Select(t => new int[] { t.minVal, t.maxVal }).ToArray();

这段代码会生成int[][]类型的二维数组,之后用JSON序列化工具(比如.NET自带的JsonSerializer.Serialize(result))将其转换为JSON字符串,就能得到ChartJS所需的[[0,10],[11,20],...]格式。

你之前的尝试存在两个问题:

  • 第一种写法将每个区间拼接成了单个字符串,最终得到的是["[0,10]","[11,20]"]这类字符串数组,并非目标格式
  • 第二种写法把数值转成了字符串数组,结果为[["0","10"],["11","20"]],而ChartJS需要的是纯数值类型的数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 15:46:04