C# 从列表A中选择属性不在列表B中的项目

C# 从列表A中选择属性不在列表B中的项目,c#,linq,C#,Linq,我有一个列表,而广播对象有一个名为Guid的属性。现在,我需要在该列表中查找所有广播对象,这些对象的Guid属性不是列表中的项目。 我找到了一个使用Except()的解决方案但它对我不起作用 Broadcasts.Where(x => x.Guid).Except(readBroadcasts); 我做错了什么?以下是一种方法: List<Guid> excludeGuid = ..... // You init guids you want to exclude List&

我有一个
列表
,而
广播
对象有一个名为
Guid
的属性。现在,我需要在该列表中查找所有
广播
对象,这些对象的
Guid
属性不是
列表
中的项目。 我找到了一个使用
Except()的解决方案但它对我不起作用

Broadcasts.Where(x => x.Guid).Except(readBroadcasts);

我做错了什么?

以下是一种方法:

List<Guid> excludeGuid = ..... // You init guids you want to exclude
List<Broadcast> result = Broadcasts.Where(x => !excludeGuid.Contains(x.Guid)).ToList() ; 
List excludeGuid=……//您可以初始化要排除的GUID
列表结果=广播。其中(x=>!excludeGuid.Contains(x.Guid)).ToList();
试试这个:

Broadcasts.Where(x => !List.Contains(x.Guid))....
您还可以使用:

List notInGuidList=Broadcasts.FindAll(b=>!readBroadcasts.Contains(b.Guid));
另一种更详细但可能更有效的方法是使用LINQ:

var notFound = from bc in Broadcasts
               join guid in readBroadcasts
               on bc.Guid equals guid into gj
               from guidJoin in gj.DefaultIfEmpty()
               where guidJoin == default(Guid)
               select bc;
List<Broadcast> notFoundBroadCasts = notFound.ToList();
var notFound=来自广播中的bc
在readBroadcasts中加入guid
在bc上。Guid等于gj中的Guid
来自gj.DefaultIfEmpty()中的guidJoin
其中guidJoin==默认值(Guid)
选择bc;
List notFoundBroadCasts=notFound.ToList();
var notFound = from bc in Broadcasts
               join guid in readBroadcasts
               on bc.Guid equals guid into gj
               from guidJoin in gj.DefaultIfEmpty()
               where guidJoin == default(Guid)
               select bc;
List<Broadcast> notFoundBroadCasts = notFound.ToList();