C# 使用linq进行分组和聚合
您好,下面有一个列表,需要使用Linq方法语法进行分组和聚合C# 使用linq进行分组和聚合,c#,linq,C#,Linq,您好,下面有一个列表,需要使用Linq方法语法进行分组和聚合 | id |Code|Descr | Number | Expiry | |---------|----|------|--------|-----------| | guidId1 | A | Desc1| Number1| 2017-03-18| | guidId2 | A | Desc1| Number1| 2017-03-18| | guidId3 | B | Desc2| Number1| 2017-0
| id |Code|Descr | Number | Expiry |
|---------|----|------|--------|-----------|
| guidId1 | A | Desc1| Number1| 2017-03-18|
| guidId2 | A | Desc1| Number1| 2017-03-18|
| guidId3 | B | Desc2| Number1| 2017-03-18|
| guidId4 | B | Desc2| Number1| 2017-03-18|
| guidId5 | C | Desc3| Number1| 2017-03-18|
| guidId6 | A | Desc1| Number2| 2020-05-20|
| guidId7 | A | Desc1| Number2| 2020-05-20|
| guidId8 | A | Desc1| Number2| 2020-05-20|
| guidId9 | B | Desc2| Number2| 2020-05-20|
| guidId10| C | Desc3| Number2| 2020-05-20|
| guidId11| C | Desc3| Number2| 2020-05-20|
我尝试过这一点,但不确定如何包括计数:
myList.GroupBy(s => new { s.Number, s.Code, s.Expiry});
我希望从列表中获得的输出:
{Code = "A",Descr = "Desc1",Number = "Number1",Expiry = "2017-03-18", Count = 2}
{Code = "B",Descr = "Desc2",Number = "Number1",Expiry = "2017-03-18", Count = 2}
{Code = "C",Descr = "Desc3",Number = "Number1",Expiry = "2017-03-18", Count = 1}
{Code = "A",Descr = "Desc1",Number = "Number2",Expiry = "2020-05-20", Count = 3}
{Code = "B",Descr = "Desc2",Number = "Number2",Expiry = "2020-05-20", Count = 1}
{Code = "C",Descr = "Desc3",Number = "Number2",Expiry = "2020-05-20", Count = 2}
提前感谢您已将
编号
、代码
和到期
进行分组,但您的结果也需要说明
。您需要将其包括在您的组中,然后获取组数
var query =
from s in myList
group 1 by new { s.Code, s.Descr, s.Number, s.Expiry } into g
select new { g.Key.Code, g.Key.Descr, g.Key.Number, g.Key.Expiry, Count = g.Count() };
你能在上分享你的代码片段吗?谢谢你,先生!这真的很有帮助。