Когда вы делаете GroupBy()
, результатом будет IEnumerable
из IGrouping<,>
с. В вашем случае это будет IGrouping<string, Photo>
. Поэтому, когда вы пытаетесь получить доступ к первому элементу, вы получаете не первый Photo
, а первый IGrouping
, который будет содержать два элемента в примере.
Правильный способ получения первого Photo
первой группы будет выглядеть примерно так:
var firstGroup = photos.GroupBy(x => x.Name).OrderBy(y => y.Key).First(); //or FirstOrDefatult() if you prefer
Photo firstPhotoInGroup = firstGroup.First();
Получив группу, вы можете использовать ее как IEnumerable
со свойством Key
.