Distinct метод работает только при изменении строкиC#

Место общения программистов C#
Ответить
Anonymous
 Distinct метод работает только при изменении строки

Сообщение Anonymous »

У меня возникла проблема с методом Linq Distinct. У меня есть список LocationID
  • B A01A
  • B A01A
  • A A01A
  • A A01A
  • A A01A
Как сможешь видите, здесь есть только два различных значения. Однако, когда они проходят через этот блок кода здесь

Код: Выделить всё

var result = rootObject.OrderLines.Where(orderLine =>
orderLine.OrderAllocations
.Where(y => y.StatusID != 250)
.Select(y => y.LocationID)
.Distinct()
.Count() == 1);
Счетчик равен 1, хотя на самом деле он должен быть 2.
Однако, когда я изменяю строку с помощью .Concat() или метод .Reverse(), как показано ниже

Код: Выделить всё

var result = rootObject.OrderLines.Where(orderLine =>
orderLine.OrderAllocations
.Where(y => y.StatusID != 250)
.Select(y => y.LocationID.Reverse())
.Distinct()
.Count() == 1);
счет правильный. не понимаю, что происходит

Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-string
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»