【发布时间】:2016-02-24 23:21:19
【问题描述】:
对我的记录列表进行排序,以便首先显示具有最多共同值的记录。
I thought I found the solution in this link, but this only sorts by the first value.
我的未排序列表看起来像这样......
我希望我的排序列表看起来像这样......
我厌倦了基于上面链接的代码...
lp = lp.GroupBy(x => x.Name)
.OrderByDescending(g => g.Count())
.SelectMany(g => g).ToList();
dataGridView2.DataSource = lp;
但正如解释的那样,这仅按第一个最常见的项目排序。
【问题讨论】:
-
您按名称分组,这似乎是唯一的,这是问题中的拼写错误还是您在代码中犯了同样的错误?我希望您希望按 Value1 分组,可能按
new { x.Value1, x.Value2, x.Value3 }? -
不是故意的,因为它后来按最常见的记录排序。它只是不会按下一个最常见的字段和下一个等进行排序。
-
名称列是否唯一?目前尚不清楚您要按哪一列/列进行排序。你能解释一下吗?
-
你能解释一下“按下一个最常见的字段排序”的确切含义吗?您的意思是要选择是按 Value1、Value2、Value3 还是 Value4 排序,还是要按 Value1 排序并将该列中出现次数最多的值排在第一位?
-
我想按具有最多共同点的记录(人)进行排序,即 Bob Steve 和 bill 的共同点最多。所以他们应该排在第一位,然后 Jim 和 Simon 的共同点最多,所以他们应该排在第二位。