C#从双重[]

时间:2017-12-13 04:16:15

标签: c# list

我有这个清单

List<List<double[]>>MyList = new List<List<double[]>>();

MyList 中的每个项目都是N个项目的列表,每个项目都是双重数组

获取MyList中的第一个列表

 List<double[]>List1items = new List<double[]>();
 List1items = MyList[0]; 

,但

如何获得:

[1] idx 索引中的一个值构成列表?

例如,类似这样:“此代码无效”

double doubleValue = MyList[1][2][1]; 

[2] idx索引中的一行形成列表?

例如:

double[] RowValues = MyList[1][2]; 

4 个答案:

答案 0 :(得分:2)

以下代码对您有所帮助,

List<List<double[]>>MyList = new List<List<double[]>>();

        double[] items1 = {1.231, 4.561, 7.891};
        double[] items2 = {1.232, 4.562, 7.892};
        double[] items3 = {1.233, 4.563, 7.893};
        double[] items4 = {1.234, 4.564, 7.894};
        double[] items5 = {1.235, 4.565, 7.895};

        List<double[]> lb1=new List<double[]>();
        lb1.Add(items1);
        lb1.Add(items2);
        List<double[]> lb2=new List<double[]>();
        lb2.Add(items3);
        lb2.Add(items4);
        List<double[]> lb3=new List<double[]>();
        lb3.Add(items5);

        MyList.Add(lb1);
        MyList.Add(lb2);
        MyList.Add(lb3);

        List<double[]>List1items = new List<double[]>();
        //MyList[0] is lb1
        List1items = MyList[0]; 
        //Print Second Double array items2's Second Item 4.562 
        Console.WriteLine(List1items[1][1]);

        //Same result as above - get a value
        Console.WriteLine(MyList[0][1][1]);

        double[] RowValues = MyList[0][1]; 
        Console.WriteLine(RowValues[1]);

答案 1 :(得分:1)

double doubleValue = MyList[1][2][1]; 
double[] RowValues = MyList[1][2]; 

“不工作”对我们没有多大帮助,但是你确定它不起作用?这两个都是合法代码,应该做问题所要求的,假设你实际填充了MyList变量,使得你至少有两个列表,并且 second 列表中的第三个数组具有至少包含两个元素的数组。请记住,索引从开始,而不是从一个开始。

答案 2 :(得分:1)

当您没有提供数据样本时,无法确定哪些内容无法正常工作。在我看来,既然你的第一个想法是正确的,那么你就不会理解数组和列表是基于0的,或者你没有用足够的数据填充你的列表/数组并试图引用一个不存在的索引(您正在访问第二个列表列表中第三个列表的双数组中的第四个项目。)

以下是在使用某些数据填充List<List<double[]>>之后如何选择单个项目的说明性示例:

double[] doubleArray = new double[] { 1, 2, 3, 4, 5 };
List<double[]> doubleArrayList = new List<double[]> { doubleArray };
List<List<double[]>> MyList = new List<List<double[]>> { doubleArrayList };

var singleItem = MyList[0][0][0];

Console.WriteLine(singleItem);

<强>输出

1

答案 3 :(得分:-1)

之前的代码正在运作。

[1]获取MyList中的第一个列表

 List<double[]>List1items = new List<double[]>();
 List1items = MyList[0]; 

[2]列表中的一个数组

double[] RowValues = MyList[1][2]; // this will return the array in index 2 of the second list (third item in List 2)

[3]数组中的一个值

double doubleValue = MyList[1][2][1];