多列表<double>到Jagged Array C#

Sec*_*ret 2 c#

我有3个列表,它们的值是动态获得的

List<double> input = new List<double>();
List<double> time = new List<double>();
List<double> censor = new List<double>();
Run Code Online (Sandbox Code Playgroud)

如何double[][]以有效的方式转换/合并为以下示例?

double[][] example =
{
    //             input  time censor
    new double[] {   50,    1,    0   },
    new double[] {   70,    2,    1   },
    new double[] {   45,    3,    0   },
    new double[] {   35,    5,    0   },
    new double[] {   62,    7,    1   },
    new double[] {   50,   11,    0   },
    new double[] {   45,    4,    0   },
    new double[] {   57,    6,    0   },
    new double[] {   32,    8,    0   },
    new double[] {   57,    9,    1   },
    new double[] {   60,   10,    1   },
};
Run Code Online (Sandbox Code Playgroud)

AAA*_*ddd 8

你可以做到这一点

List<double> input = new List<double>();
List<double> time = new List<double>();
List<double> censor = new List<double>();

var results = new double[input.Count][];

for (var i = 0; i < input.Count; i++)
   results[i] = new []{ input[i] , time[i] , censor[i] };
Run Code Online (Sandbox Code Playgroud)

  • 我认为这有两个好处:(1)效率高,(2)一目了然可以理解.;) (2认同)

fub*_*ubo 7

Linq appraoch

double[][] example = input.Select((x, i) => new []{ x, time[i], censor[i]}).ToArray();
Run Code Online (Sandbox Code Playgroud)