murkalkiran Ответов: 1

Как получить разницу между двумя списками в C#?


Всем Привет

У меня есть два списка, я хотел получить разницу из двух списков в 3-м списке. мой 1-й список null able.

Что я уже пробовал:

List<long?> RateCardList = new List<long?>();
                List<long> categorylist = new List<long>();



Список<длинные?&ГТ; ThirdList = новый список<длинные?&ГТ;();
ThirdList = RateCardList.Except(categorylist);


Я получаю ошибку в третьем списке

1 Ответов

Рейтинг:
4

Thomas Daniels

Вы получаете ошибку, потому что ваш аргумент Except имеет long значения, в отличие от RateListCard, который имеет long?с.

Сделать это:

ThirdList = RateCardList.Except(categoryList.Select(x => new long?(x)));
.Select(x => new long?(x)) берет все элементы, вызывает код, чтобы сделать их long?s и возвращает новый IEnumerable<long?>, который вы можете законно передать Except.


Richard Deeming

Это может быть немного проще в использовании Cast вместо Select:

.Except(categoryList.Cast<long?>())