我有这个清单
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];
答案 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];