LINQ — SkipWhile сломан?C#

Место общения программистов C#
Ответить
Гость
 LINQ — SkipWhile сломан?

Сообщение Гость »


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

var последовательность = новый [] { 1, 1, 2, 3 }; результат вар = последовательность.SkipWhile(i => я == 3); // О нет! Возвращает { 1, 1, 2, 3 } Почему не пропускается 3?

Моей следующей мыслью было: ОК, оператор Except сделает свое дело:

var последовательность = новый [] { 1, 1, 2, 3 }; результат вар = последовательность.Except(i => я == 3); // О нет! Возвращает { 1, 2 } Подводя итог,
[*]За исключением удаления 3, но также удаляет неразличимые элементы. Грр. [*]SkipWhile не пропускает последнее элемент, даже если он соответствует состояние. Грр.
Может кто-нибудь объяснить, почему SkipWhile не пропускает последний элемент? И может ли кто-нибудь подсказать, какой оператор LINQ я могу использовать, чтобы удалить цифру «3» из приведенной выше последовательности?
Ответить

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

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

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

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

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