(LINQ)
我有一个简单的对象让我们在一个简单的狗列表中调用Dog
Dog
Id (Unique)
GroupBarkId
Name
我需要让所有拥有相同最高 GroupBarkId的狗
Id GroupdBarkId
1 2
2 2
3 2
4 3
5 3
6 3
所以我需要列表,在这种情况下, GroupBarkId等于3 。
我在查询时不知道最高的GroupBarkId
答案 0 :(得分:2)
您可以使用Enumerable.GroupBy
+ OrderByDescending
:
List<Dog> dogsWithHighestGroupBarkId = dogs
.GroupBy(d => d.GroupBarkId)
.OrderByDescending(grp => grp.Key)
.First()
.ToList()
答案 1 :(得分:2)
var dogs = db.Dogs.Where(d => d.GroupdBarkId == db.Dogs.Max(d => d.GroupdBarkId))
.ToList();
或首先获得最大ID:
var id = db.Dogs.Max(d => d.GroupdBarkId);
var dogs = db.Dogs.Where(d => d.GroupdBarkId == id)
.ToList();