Допустим, у меня есть перечислимую источник, который выглядит следующим образом:Удаление одного элемента из перечисляемого источника, когда элементы равны
IEnumerable<string> source = new [] { "first", "first", "first", "second" };
Я хочу, чтобы иметь возможность построить заявление LINQ, который будет возвращать этот :
"first", "first", "second"
Обратите внимание, что только один из них не прошел. Меня не волнует, какой из них, потому что в моем случае все 3 «первые» считаются равными. Я пробовал source.Except(new [] { "first" })
, но это удаляет все экземпляры.
Просто чтобы быть ясно, вы хотите, чтобы удалить дубликаты, но только один экземпляр дублирующие? – Codeman
Да, это так. До сих пор я только нашел вещи, которые удалят все. Я хотел бы сохранить это на IEnumerable без необходимости использовать возврат доходности, если это возможно. –
Метод Distinct() удалит дубликаты для вас. http://msdn.microsoft.com/en-us/library/bb348436.aspx – Adam