У меня есть два списка, которые содержат идентификатор, тип и рейтинг. Я объединяю эти два списка и выделяю их с помощью Id с помощью moreLinq. Тем не менее, я получаю рейтинг, который добавляется в список позже. Я хотел бы иметь возможность отличать их идентификатором и получить элемент, который имеет наибольший рейтинг.как выбрать наивысший рейтинг, если идентификаторы одинаковые (разные)?
item1.Union(item2).DistinctBy(e => e.Id);
where item1 is a baseItem of
BaseItem{
Id,
Type,
Rating,
}
Это всегда дает мне оценки item2, если их идентификаторы одинаковы.
Это большой один. Я был настолько сосредоточен на попытке сделать как разную функцию и не думал об этой возможности. Спасибо за ответ, но я изменил First() в FirstOrDefault(). –
@ChitKhine Не проблема, рада помочь. Что касается 'FirstOrDefault()' - вы гарантированно * всегда имеете хотя бы один элемент в группировке (иначе группировка не существовала). Для меня запись 'FirstOrDefault()' может вводить в заблуждение читателей - хотя я соглашаюсь, что это может быть вопросом предпочтения без реального воздействия – Rob