如何对整数列表进行排序?

时间:2015-11-26 22:16:58

标签: c# linq sorting

我的结构定义如下:

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总是在其中包含添加到列列表中的最后一列,而不是具有最少调整量的列。

我做错了什么?如何获得调整总量最少的列表?

1 个答案:

答案 0 :(得分:6)

  

我做错了什么?

对于Column循环的每次迭代,您都在重复使用(并覆盖)相同的for。您需要为每个新列分配new List<int>();,而不是:

for (int x=0;...
{
    Column.Clear();

执行:

for (int x=0;...
{
    List<int> Column = new List<int>();