Привет всем У меня есть 2-го класса для примера я буду называть его А и ВПолучить Макс вхождение элемента в Linq
А список и каждый Элемент есть список B элемента. B элемент имеет тип
Я хочу получить элемент B по его обнаружению в моем списке элементов B.
var listB = A
.SelectMany(a => a.B);
var listBId = listB
.Where(b => b.Type == SelectedType)
.Select(b => b.Id);
var IdMaxoccur = listBId
.GroupBy(x => x)
.OrderByDescending(x => x.Count())
.First()
.Key;
Я нахожу это немного тяжелым для просто получить максимальное вхождение идентификатора в списке .... Вы знаете лучший способ сделать это?
Так как рабочий код, который вы хотите улучшить, ваш вопрос лучше подходит для [codereview.se]. –
Не знал, что это существует ... Я часто не использую переполнение стека: P – Jebik
Если вы используете [метод расширения 'MaxBy() для linq] (https://www.nuget.org/packages/MoreLinq .Source.MoreEnumerable.MaxBy /), вы можете написать это по строкам: 'var result = A.OfType (SelectedType) .MaxBy (x => x.Id) .Key;' (несколько упрощенное от того, что вы на самом деле необходимость). –