Вот более общий ответ, с пользовательским объектом это будет легче объяснить.
GroupBy на поле, в котором вы хотите заказать.Таким образом, все строки с одинаковым orderID будут вместе.
Order Desc для этого ключа, и первая группа будет всей строкой с максимальным orderID
var input = new Foo[] {
new Foo{GroupId=1,Label="a" },
new Foo{GroupId=2,Label="b" },
new Foo{GroupId=3,Label="c" },
new Foo{GroupId=3,Label="d" },
new Foo{GroupId=2,Label="e" },
new Foo{GroupId=4,Label="Bar" },
new Foo{GroupId=4,Label="Bar" }
};
var result = input.Where(x => x.Label!="Bar") //-> { a, b, c, d, e }
.GroupBy(x => x.GroupId) //-> {1: a} {2: b, e} {3: c, d}
.OrderByDescending(x=> x.Key) //-> {3: c, d} {2: b, e} {1: a}
.First();