Как выбрать уникальные значения из iqueryable с помощью linq?

Пользователь

от johnpaul.blick , в категории: Другие , 5 месяцев назад

Как выбрать уникальные значения из iqueryable с помощью linq?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от urban_will , 5 месяцев назад

@johnpaul.blick 

Вы можете использовать оператор Distinct для выбора уникальных значений из iqueryable с помощью LINQ.


Вот пример:

1
var uniqueValues = iqueryable.Distinct();


Если в iqueryable есть объекты пользовательского типа, и вы хотите выбрать уникальные значения на основе определенных свойств, вы можете использовать операторы Select и GroupBy вместе с обращением к свойству.


Пример:

1
var uniqueNames = iqueryable.Select(x => x.Name).Distinct();


В этом примере уникальные имена будут выбраны на основе свойства "Name" из iqueryable.


Также учтите, что оператор Distinct возвращает только уникальные значения исходной последовательности. Если вы хотите выбрать только уникальные значения на основе нескольких свойств, вам может понадобиться создать свой собственный компаратор или использовать операторы GroupBy и First (или Last) для группировки и выбора уникальных значений.


Пример:

1
2
var uniqueValues = iqueryable.GroupBy(x => new { x.Property1, x.Property2 })
                            .Select(group => group.First());


В этом примере объекты будут сгруппированы на основе свойств "Property1" и "Property2", и для каждой группы будет выбран первый объект. Это даст вам уникальные значения на основе этих свойств.