OrderBy
позволяет вам использовать любое выражение, которое вы будете sh, независимо от того, насколько оно сложное, поэтому вы можете написать
var byYongestMember = groups
.OrderBy(g => g.Select(p => p.Age).Min());
Однако, это может быть несколько медленным, когда в каждом из них много людей группа, а сами группы большие, поэтому вам лучше объединить каждую группу с возрастом ее младшего члена, отсортировать пары и затем спроецировать группы:
var byYongestMember = groups
.Select(g => new {
Group = g
, MinAge = g.Members.Min(p => p.Age)
})
.OrderBy(p => p.MinAge)
.Select(p => p.Group);
Таким образом, вычисляя возраст самого младшего члена будет происходить только один раз на группу.