答案 0 :(得分:2)
<tableName>.GroupBy(k => k.key)
.Select(g => g.OrderByDescending(v => v.value)
.FirstOrDefault());
答案 1 :(得分:0)
假设我有带ID和年龄的员工类。下面的查询应该返回预期格式的结果。基本上查询按ID分组项目并返回每个组的最大值。
List<Empployee> lst = new List<Empployee>();
lst.GroupBy(g => g.ID).ToList().ForEach(g =>
{
Console.WriteLine($"Key:{g.Key} and Value:{g.Max(m => m.Age)}");
});
public class Empployee
{
public int ID { get; set; }
public int Age { get; set; }
}
答案 2 :(得分:0)
试试这个:
source
.GroupBy(x => x.Key)
.SelectMany(x => x.OrderByDescending(y => y.Value).Take(1));
养成在SelectMany
/ Take(1)
上进行Select
/ First()
组合的习惯是最好的,因为前者对于添加Where
条款而后者不是。