gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:22 24 4
gpt4 key购买 nike

我有一个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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com