C# 除了林肯#

C# 除了林肯#,c#,linq,C#,Linq,我得去看看你的名单。包含所有有效章节代码(chpt_cd)及其相关appl src代码的章节。i、 e名单是 List<ChapterCodeValidationOutput> 列表示例数据为 chpt_cd aapl_src_cd ------- ----------- 07038 C062 07038 C062 06206 C191 另一个列表仅包含无效的章节代码 列表 只是 它的样本数据是“06206” 我必须找到无效章节代码列表

我得去看看你的名单。包含所有有效章节代码(chpt_cd)及其相关appl src代码的章节。i、 e名单是

List<ChapterCodeValidationOutput>
列表示例数据为

chpt_cd    aapl_src_cd
-------    -----------

07038      C062
07038      C062
06206      C191
另一个列表仅包含无效的章节代码

列表

只是

它的样本数据是“06206”


我必须找到无效章节代码列表的相关应用程序,如“C191”等。返回的文件应仅为列表

在这种情况下,除了
之外,其他都不会对您有所帮助

假设这些是列表:

List<ChapterCodeValidationOutput> list1 = ...
List<string> list2 = ...
然后像这样使用它来获得相应代码的列表:

var result = list2.Select(x => lookup[x].First()).ToList();

我假设(因为您在评论中提到过),如果存在重复的
chpt_cd
值,则相应的
appl_src_cd
值将相等。

ToDictionary
调用将抛出
ArgumentException
,因为在给定示例的第一个列表中存在重复的chpt_cd。@stop-cran,右。我没看到before@stop-cran,问题更新为使用查找而不是字典。第一个列表中似乎有重复的
chpt\u cd
值。如果相应的
aapl_src_cd
值不同会发生什么情况?它们不会不同。
var SelectedChapters=Chapters.Where(w=>InvalidChapters.Contains(w.chpt_cd)).ToList()@puropoix,如果列表很大,那么这会很慢。
var lookup = list1.ToLookup(x => x.chpt_cd, x => x.appl_src_cd);
var result = list2.Select(x => lookup[x].First()).ToList();