Linq根据另一个List的成员资格从一个List中排除自定义对象(c#)

时间:2017-12-06 10:52:34

标签: c# list linq

我有自定义Dynamics CRM对象的列表(列表A),然后我想创建同一自定义对象类型的另一个列表(列表B),该列表不包含列表A中已存在的任何自定义对象。实例标识符是一个名为“emailaddress”的参数

我已经尝试制作列表然后在列表B上执行“删除”(或排除) - 这可行但似乎很慢,我宁愿尝试在初始列表(B)创建时保留它们的任何重复-time - 即作为用于创建List B的查询的一部分。有人知道这是否可行? (C#)

(假设列表A已经被实例化)psuedo / code就像

...
from b in context.CreateQuery("contact")
where (string) b["emailaddress"] !=null 
and b["emailaddress"] NOT IN ListA
select new object.....toList()

由于

1 个答案:

答案 0 :(得分:0)

我认为左外连接会起作用......

var q =
(from b in context.CreateQuery("contact")
join c in ListA on c.emailaddress equals b.emailaddress into bc
from c in bc.DefaultIfEmpty()
select new { whatever your object properties are}).ToList();