我有一个对象/类的 List<T>,它已经填充了来自 SQL 数据库的数据。我想要做的是找出这个表中最常见的用户是谁,并根据最常见的用户并从最常见的用户开始对新列表进行排序

我不知道如何在 Stackoverflow 上设计表格的样式,所以你必须忍受我。

例如,数据库表可以如下所示:

id - userID - randomColumn - randomColumn2
1 - 2 - ExampleText - ExampleText
2 - 2 - ExampleText - ExampleText
3 - 1 - ExampleText - ExampleText
4 - 3 - ExampleText - ExampleText
5 - 2 - ExampleText - ExampleText
6 - 1 - ExampleText - ExampleText

我想使用 LINQ 或 SQL 来格式化它,所以我得到一个看起来像这样的列表
userID - amountColumn - randomColumn
2 - 3 - ExampleText
1 - 2 - ExampleText
3 - 1 - ExampleText

最佳答案

使用 LINQ 提供的 GroupBy 扩展方法。

// Pseudo code
var grouped = list.GroupBy(item => item.UserID);

然后,您可以调用 OrderByDescending 对结果进行排序:
var sorted = grouped.OrderByDescending(group => group.Count());

关于c# - 获取 List<T> 中最常见的项目并在此之后排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21434903/

10-09 04:44