C# LINQ中按组计数和最大列数
我有一个模型C# LINQ中按组计数和最大列数,c#,linq,C#,Linq,我有一个模型 public class Rate { public int Nr{ get; set; } public string Rate{ get; set; } public int Order{ get; set; } } 还有这样一个RateList=List Nr | Rate | Order 123 | A | 2 425 | A+ | 1 454 | B | 4 656 | B+ | 3 46
public class Rate
{
public int Nr{ get; set; }
public string Rate{ get; set; }
public int Order{ get; set; }
}
还有这样一个RateList=List
Nr | Rate | Order
123 | A | 2
425 | A+ | 1
454 | B | 4
656 | B+ | 3
465 | A | 2
765 | B | 4
Rate | Count | Order
A+ | 1 | 1
A | 2 | 2
B+ | 1 | 3
B | 2 | 4
var rating= RateList.Distinct().GroupBy(x => x.Rate)
.Select(x => new { Rate = x.Key, RateCount = x.Count() })
.OrderBy(x => x.Order);
请注意,顺序始终与速率匹配(A+=1,A=2,B+=3,B=4,C+=5…
我想数一数该速率发生了多少次,并按顺序显示顺序
结果应该是这样的
Nr | Rate | Order
123 | A | 2
425 | A+ | 1
454 | B | 4
656 | B+ | 3
465 | A | 2
765 | B | 4
Rate | Count | Order
A+ | 1 | 1
A | 2 | 2
B+ | 1 | 3
B | 2 | 4
var rating= RateList.Distinct().GroupBy(x => x.Rate)
.Select(x => new { Rate = x.Key, RateCount = x.Count() })
.OrderBy(x => x.Order);
或者没有列顺序
Rate | Count
A+ | 1
A | 2
B+ | 1
B | 2
在SQL中,如果我在表Tab
SELECT Rate, COUNT(Rate), Max(Order) from Tab group by Rate
但是在林克
我在尝试这样的事情
Nr | Rate | Order
123 | A | 2
425 | A+ | 1
454 | B | 4
656 | B+ | 3
465 | A | 2
765 | B | 4
Rate | Count | Order
A+ | 1 | 1
A | 2 | 2
B+ | 1 | 3
B | 2 | 4
var rating= RateList.Distinct().GroupBy(x => x.Rate)
.Select(x => new { Rate = x.Key, RateCount = x.Count() })
.OrderBy(x => x.Order);
但是没有起作用。
感谢您的帮助。您的SQL查询等同于:
var rating = rateList.GroupBy(x => x.Rate)
.Select(x => new {
Rate = x.Key,
RateCount = x.Count(e => e != null),
Max = x.Max(g => g.Order)
});
您的SQL查询等于:
var rating = rateList.GroupBy(x => x.Rate)
.Select(x => new {
Rate = x.Key,
RateCount = x.Count(e => e != null),
Max = x.Max(g => g.Order)
});
我在末尾添加了
.OrderBy(x=>x.Ordem)
我得到了我想要的,谢谢:)我在末尾添加了.OrderBy(x=>x.Ordem)
我得到了我想要的,谢谢:)