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

Jagged Array始终为空:List元素无法添加至交错数组的问题排查

问题分析与解决

你的代码存在几个关键错误,导致交错数组始终为空,逐一说明:

错误点1:错误调用Split方法

你的list元素是**(double, double)类型的元组**,不是字符串,元组根本没有Split方法,这段代码实际上无法通过编译。你可能误把元组当成了字符串类型的元素。

错误点2:误用LINQ的Append方法

数组是固定长度的集合,LINQ的Append方法不会修改原数组,而是返回一个包含新元素的新序列。你没有将这个新序列赋值给jaggedArray,所以原数组始终保持初始化时的状态——所有元素都是null。

错误点3:类型完全不匹配

你声明的jaggedArray是double[][](double类型的交错数组),但你试图添加string[]类型的元素,而且还把Convert.ToDouble的结果(double类型)放进字符串数组,这本身就会引发类型错误。


修正后的代码

方法1:使用索引直接赋值

利用你已经初始化好的数组大小,通过索引逐个设置元素:

var list = new List<(double, double)> {
    (-99.8299313, 32.2840118),
    (-99.8293304, 32.2840118),
};

var jaggedArray = new double[list.Count][];
for (int i = 0; i < list.Count; i++)
{
    var item = list[i];
    // 直接将元组的两个元素转为double数组,赋值给交错数组的对应索引
    jaggedArray[i] = new double[] { item.Item1, item.Item2 };
}

方法2:用LINQ直接转换(更简洁)

直接通过LINQ将元组集合转为交错数组:

var list = new List<(double, double)> {
    (-99.8299313, 32.2840118),
    (-99.8293304, 32.2840118),
};

var jaggedArray = list.Select(item => new double[] { item.Item1, item.Item2 }).ToArray();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:42:09