LINQ отличается от класса? - PullRequest
       15

LINQ отличается от класса?

2 голосов
/ 18 декабря 2009

Обратите внимание, что этот вопрос похож на этот , за исключением того, что я не работаю с linq-to-sql, поэтому "let" не может использоваться.

В основном у меня есть выбор типа

... .Select(c => new SampleClass { Id = c.Location.Name, Name = c.Location.Name }).Distinct().ToList()

который работал, когда у меня только что было

... .Select(c => c.Location.Name).Distinct().ToList()

Как мне сделать отдельный вызов для одного из элементов в SampleClass?

Ответы [ 2 ]

3 голосов
/ 19 декабря 2009

Вы можете сгруппировать элементы по ключу, а затем выбрать, какой элемент из группы вы хотите использовать в качестве значения. Я использую FirstOrDefault в качестве примера:

... .Select(c => new SampleClass { Id = c.Location.Name, Name = c.Location.Name })
    .GroupBy(c => c.Id)
    .Select(group => group.FirstOrDefault())
    .ToList()
0 голосов
/ 19 декабря 2009

Это то, что вам нужно: http://sprokhorenko.blogspot.com/2009/11/convenient-distinct.html?

Это расширение для IEnumerable, которое позволяет вам .Distinct () для любого поля (или даже нескольких, использующих лямбды), что создает IEqualityComparer для вас на лету.

...