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

如何将成对List<double>分组存入List<List<double>>集合中

你之前直接逐个Add的写法是把所有X、Y序列都直接添加到了外层List,没有做分组,所以达不到成对存储的效果。Tuple报错是因为Add方法需要传入Tuple实例,不能直接传两个独立参数。

方案1:严格按要求使用List<List<double>>实现

如果必须使用List<List<double>>类型存储,需要做两层嵌套,外层List的每个元素是一个长度为2的集合,分别存储对应组的X、Y序列,实现代码如下:

List<List<double>> listlistdXYSignals = new List<List<double>>();
// 添加第一组XY
listlistdXYSignals.Add(new List<double> { listdSignal0X, listdSignal0Y });
// 添加第二组XY
listlistdXYSignals.Add(new List<double> { listdSignal1X, listdSignal1Y });
// 添加第三组XY
listlistdXYSignals.Add(new List<double> { listdSignal2X, listdSignal2Y });

取值规则:

  • listlistdXYSignals[0][0] 对应 listdSignal0X
  • listlistdXYSignals[0][1] 对应 listdSignal0Y
  • 以此类推即可按组索引获取对应的XY序列

方案2:更易维护的元组实现(推荐)

这种方式不需要处理嵌套索引,可读性更高,适合后续WPF图表绑定场景。

旧版Tuple兼容写法

List<Tuple<List<double>, List<double>>> listtupledSignals = new List<Tuple<List<double>, List<double>>>();
listtupledSignals.Add(Tuple.Create(listdSignal0X, listdSignal0Y));
listtupledSignals.Add(Tuple.Create(listdSignal1X, listdSignal1Y));
listtupledSignals.Add(Tuple.Create(listdSignal2X, listdSignal2Y));

取值方式:listtupledSignals[0].Item1为X序列,listtupledSignals[0].Item2为Y序列

C# 7.0+ 值元组写法(可读性最优)

// 定义带命名属性的元组集合
List<(List<double> X, List<double> Y)> signalGroups = new List<(List<double> X, List<double> Y)>();
signalGroups.Add((listdSignal0X, listdSignal0Y));
signalGroups.Add((listdSignal1X, listdSignal1Y));
signalGroups.Add((listdSignal2X, listdSignal2Y));

取值方式:直接通过命名属性获取,比如signalGroups[0].X、signalGroups[0].Y,不需要记忆序号对应关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:45:07