如何使用C# Linq来实现"group by"操作

11 浏览
0 Comments

如何使用C# Linq来实现"group by"操作

表格设计:

列1(主键) | 列2(主键) | 列3 | 列4
----------------------------------------------------------------
1                       s                      2          user1
1                       d                      3          user2
1                       s                      2          user1

在C#(linq)中,如何对列1和列2进行“group by”,以便我可以得到不重复的行以及列3和列4的数据?

示例:

列1(主键) | 列2(主键) | 列3 | 列4
----------------------------------------------------------------
1                       s                      2          user1
1                       d                      3          user2

0
0 Comments

问题的出现的原因是在使用C# Linq进行分组时,如果使用主键进行分组,由于所有的主键默认都是唯一的,所以不会有任何好处。因此,需要找到一种方法来实现分组。

解决方法是可以使用以下代码来按多个列进行分组:

from row in Table
    group row by new
    {
        row.ColumnA,
        row.ColumnB,
        ...
        ...
    } into gcs
    select new {
        ColumnA = gcs.Key.ColumnA,
        ColumnB = gcs.Key.ColumnB,
        ...
        ...
    };

我之前尝试过这种方法,但是我需要在group by子句中放置所有的列吗?

如果你的数据的性质如上所述,那么是的,可以试一试。

0