LINQ具有多个选择和多个选择组

Cur*_*ous 1 c# linq

我有一个这样的表:

First Field | Second Field |  Third Field   |   Fourth Field
------------+--------------+----------------+----------------
 5      |     aaaa     |      47            |       abc
 5      |     aaaa     |      57            |       def
 5      |     aaaa     |      63            |       xyz
 5      |     bbbb     |      39            |       www
 5      |     bbbb     |      37            |       lol
 5      |     cccc     |      84            |       yuy
Run Code Online (Sandbox Code Playgroud)

我想通过第一个和第二个字段对此表进行分组,但我想只获得具有最大第三个字段的行.

我怎么能通过c#中的LINQ来做到这一点?

var curi = (from row in customClassList.AsEnumerable()
                    group row by new
                    {
                        First = row.FirstField.ToString(),
                        Second = row.SecondSield.ToString(),
                    } into grp
                    select new FieldsClass
                    {
                        First = grp.Key.First,
                        Second = grp.Key.Second,
                        Third = grp.Select(p => p.ThirdField).Max().ToShort(),
                        Fourth = grp.Key.Fourth
                    }).ToList();
Run Code Online (Sandbox Code Playgroud)

这是我的预期结果:

First Field | Second Field |  Third Field   |   Fourth Field
------------+--------------+----------------+----------------
 5      |     aaaa     |      63            |       xyz
 5      |     bbbb     |      39            |       www
 5      |     cccc     |      84            |       yuy
Run Code Online (Sandbox Code Playgroud)

fub*_*ubo 8

怎么样

var result = customClassList.GroupBy(x => new {x.FirstField, x.SecondField})
                            .Select(x => x.OrderByDescending(y => y.ThirdField).First());
Run Code Online (Sandbox Code Playgroud)