powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнение IEnumerable
7 сообщений из 7, страница 1 из 1
Сравнение IEnumerable
    #38949464
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру есть два IEnumerable. Каждый заполнен классами. Заполняются они из разных источников. Есть необходимость сравнить их по значению.

Как я понял, простые операнды типа (!= или Equals) будут сравнивать ссылку. Это не то что мне надо. Я хочу увидеть список классов одного перечесления которые не имеют аналогии в другом.
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949487
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanekoffice,

(!= или Equals) можно переопределить так как тебе нужно
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949488
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanekoffice,

кроме того можно использовать для сравнения свой comparer
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949507
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как выше было сказано, переопределение Equals и GetHashCode, и Enumerable.Except(TSource) , либо вторая перегрузка Except с IEqualityComparer<TSource>
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949509
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я примерно на это и расчитывал...
Спасибо
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949512
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныКак выше было сказано, переопределение Equals и GetHashCode, и Enumerable.Except(TSource) , либо вторая перегрузка Except с IEqualityComparer<TSource>

Ну, Понятно что Equal можно переопределить как сравнение всех простых типов внутри. Потом пробегаться foreach и ловить Any().

А как с помощью Except Получить уникальную запись? То есть ID = 3

Код: c#
1.
2.
3.
4.
5.
6.
List<Defect> l1 = new List<Defect>();
l1.Add(new Defect {Id = 1, ItemAction = Vmzko.ItemAction.Removed, Name = "1"});

List<Defect> l2 = new List<Defect>();
l1.Add(new Defect { Id = 3, ItemAction = Vmzko.ItemAction.Undefined, Name = "3" });
l1.Add(new Defect { Id = 1, ItemAction = Vmzko.ItemAction.Removed, Name = "1" });
...
Рейтинг: 0 / 0
Сравнение IEnumerable
    #38949519
sanekoffice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался. Тема закрыта
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Сравнение IEnumerable
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]