gpt4 book ai didi

c# - 与 Linq 中的 group by 不同

转载 作者:行者123 更新时间:2023-12-03 18:42:17 29 4
gpt4 key购买 nike

ID  UserName    BookType    BookID

1 Krish 1 1
1 Krish 1 2
1 Krish 2 1
1 Krish 2 2
2 Ram 1 1
3 Raj 1 1
3 Raj 1 2

我有上面的表格,我想为每个用户获取不同的 BookType 计数和 BookID 计数,我可以在 SQL Server 中编写它,但是当我来到 LINQ 时,我无法编写查询。

我需要以下输出
ID  UserName    BookType    BookID

1 Krish 2 2
2 Ram 1 1
3 Raj 1 2

最佳答案

这应该给你正确的结果:-

var result = Userlist.GroupBy(x => new { x.ID, x.UserName })
.Select(x => new
{
ID = x.Key.ID,
UserName = x.Key.UserName,
BookType = x.Max(z => z.BookType),
BookId = x.Max(z => z.BookId)
});

更新:

尽管您同意回答,但我不知何故错过了您的要求,并且我上面发布的答案是错误的,因为它获取了最大的 BookType 和 BookId。以下是获取不同计数的查询:-
var result = Userlist.GroupBy(x => new { x.ID, x.UserName })
.Select(x => new
{
ID = x.Key.ID,
UserName = x.Key.UserName,
BookType = x.Select(z => z.BookType).Distinct().Count(),
BookId = x.Select(z => z.BookId).Distinct().Count()
});

关于c# - 与 Linq 中的 group by 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32864237/

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