У меня есть две коллекции. Первый из них имеет сложный тип, который содержит два строковых свойстваОтличие от одной коллекции от другой коллекции с использованием Linq
chpt_cd и appl_src_cd
public class ChapterCodeValidationOutput
{
public string chpt_cd { get; set; }
public string appl_src_cd { get; set; }
}
И это получить хранится в переменной _validChapterCodeLst.
Это образец данных может выглядеть следующим образом:
chpt_cd aapl_src_cd
------- -----------
07038 C062
06206 C191
На вход метода, который производит сбор представляет собой набор строк.
List<string> _chapterCodes
, которые могут содержать данные, такие как:
'070038'
Я хочу, чтобы найти разницу между два сбором и поместить их в два отдельных списках соответственно.
Какой бы там в _validChapterCodeLst должен быть правильный список Output и он должен иметь две колонки аналогичным образом
chpt_cd и связанный appl_src_cd и инвалиду список должен содержать разницу между _validChapterCodeLst и _chapterCodes список входных данных. А также должно содержать два столбца аналогично.
Я попытался
gmvo._invalidChapterCodes = gmvi._chapterCodes.Except(_validChapterCodeLst.ConvertAll(x => x.chpt_cd.ToString())).ToList();
Я попытался преобразовать _validChapterCodeLst в список первой, а затем выполнить исключением.
Но это не сработало.
Также я не знаю, как получить связанное appl_src_cd.
Выход должен быть
06206 C191
Для O (1) поиск HashSet всегда гораздо лучше, чем простой список, O (п), хороший код –
@ stop-cran Ok, но новый HashSet (_validChapterCodeLst) бросает исключение, как вы должны бросать коллекцию сложного типа объекта в коллекцию строки? –
StrugglingCoder
@StrugglingCoder, правильно. Отредактированные имена в ответе. –