c# - Linq 中的 Row_number 超过(按 xxx 分区)?

标签 c# linq .net-4.0

我有一个DataTable,它有一个结构和数据:

id |   inst   |   name
------------------------
 1 |  guitar  |  john
 2 |  guitar  |  george
 3 |  guitar  |  paul
 4 |  drums   |  ringo
 5 |  drums   |  pete

我可以通过以下方式检索记录:

IEnumerable <Beatle>...

class Beatle
{
  int id;
  string inst;
  string name;
}

我想获得演奏不同乐器的人的内部顺序。在 MSSQL 中我会使用

SELECT 
    *
    ,Row_Number() OVER (PARTITION BY inst ORDER BY id) AS rn
FROM Beatles

这个查询返回

id |   inst   |   name  | rn
-----------------------------
 1 |  guitar  |  john   | 1
 2 |  guitar  |  george | 2
 3 |  guitar  |  paul   | 3
 4 |  drums   |  ringo  | 1
 5 |  drums   |  pete   | 2

问题:
我如何在 Linq 中做到这一点?

最佳答案

B"H

我知道这是旧的。但为什么解决方案不简单?

var o = beatles.GroupBy(x => x.inst)
               .SelectMany(g =>
                   g.Select((j, i) => new { j.inst, j.name, rn = i + 1 })
               );

关于c# - Linq 中的 Row_number 超过(按 xxx 分区)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48353692/

相关文章:

c# - 循环浏览以编程方式创建的文本框时出现“无法转换对象”

c# - 带有 Entity Framework 的动态多数据库上下文

c# - 使用 LINQ 对 ID、EmailListID、PhoneListID 等进行分组

asp.net - ASP.NET 中的 HTML 转 PDF

.net-4.0 - TPL - MaxDegreeOfParallelism 和 MaximumConcurrencyLevel 之间的区别

c# - 例如,是否有可能销毁/删除 self ?

c# - asp :Label and span 的 HTML/CSS 定位问题

linq - 如何使 EF-Core (2.1) 编译查询返回 IQueryable?

C# Linq to XML 查询

c# - 在 List<Dictionary<string, object>> 中搜索一个值