Моя основная проблема заключается в понимании IGrouping<int, SubForm>
. Мне нужен самый частый объект (MyClass
). Это код, у меня сейчас:Linq, IQueryable получить наиболее часто используемый объект элемента
var subForm =
classes.GroupBy(c => c.SubFormId)
.OrderByDescending(sf => sf.Count())
.FirstOrDefault();
Это возвращает IGrouping<int, SubForm>
. Чтобы получить фактический объект, я должен сделать еще один FirstOrDefault()
, но компилятор показывает, что может быть пустое исключение. Это код для получения фактической подформы, можно ли это сделать лучше?
var subForm =
classes.GroupBy(c => c.SubFormId)
.OrderByDescending(sf => sf.Count())
.FirstOrDefault().FirstOrDefault().SubForm;
Где MyClass бывают? Не совсем понятно, чего вы пытаетесь достичь ... –
@JonSkeet, извините, это то же, что и класс SubForm. –
Итак, вы пытаетесь получить идентификатор * ID или его сущность? –