我的结构定义如下:
List<int> Column = new List<int>();
List<List<int>> Columns = new List<List<int>>();
我正在填充这样的结构:
Columns.Clear();
for (int x=0;...
{
Column.Clear();
Column.Add(0); // amount of adjustment for this list
Column.Add(x);
for (int y=0;...
...
Column.Add(data);
Column[0] += dataAdjustment; // keep running total of adjustment
}
Columns.Add(Column);
}
然后,我试图像这样得到数据:
Columns.Sort((r1, r2) => r1[0].CompareTo(r2[0]));
Column = Columns[0];
我只想要调整量最少的列。
我的问题是,最后,Column总是在其中包含添加到列列表中的最后一列,而不是具有最少调整量的列。
我做错了什么?如何获得调整总量最少的列表?
答案 0 :(得分:6)
我做错了什么?
对于Column
循环的每次迭代,您都在重复使用(并覆盖)相同的for
。您需要为每个新列分配new List<int>();
,而不是:
for (int x=0;...
{
Column.Clear();
执行:
for (int x=0;...
{
List<int> Column = new List<int>();