LINQ C#除外

时间:2016-06-05 12:49:19

标签: c# linq

我必须列出。一个包含所有有效章节代码(chpt_cd)及其相关的appl src代码。即列表是

List<ChapterCodeValidationOutput>

基础模型类是

public class ChapterCodeValidationOutput
{
    public string chpt_cd { get; set; }
    public string appl_src_cd { get; set; }
}

列表示例数据是..

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

07038      C062
07038      C062
06206      C191

另一个列表仅包含无效的章节代码。

List<string>

它的样本数据是&#39; 06206&#39;

我必须找到无效章节代码列表的关联appl_src_cd,即&#39; C191&#39;等等 。返回的内容应该只是一个列表。

1 个答案:

答案 0 :(得分:1)

在这种情况下,

Except对您无济于事。

假设这些是列表:

List<ChapterCodeValidationOutput> list1 = ...
List<string> list2 = ...

然后你可以从第一个列表中创建一个快速查找的查找,如下所示:

var lookup = list1.ToLookup(x => x.chpt_cd, x => x.appl_src_cd);

然后像这样使用它来获取相应代码的列表:

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

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