c# - 如何从 ID 不匹配的两个列表中选择项目

标签 c# linq

好的,所以我有两个不同类型的项目列表。

var whales = new List<Whale>();

var crabs = new List<Crab>();

所以他们都有 id 属性。因此,保存列表中的对象的 ID 为:

鲸鱼:1、3、4、5 螃蟹:1、2、3、4

好的,我有一个问题:

var matchedPairs = from c in crabs
                   from w in whales
                   where c.Id = w.Id
                   select new { crab = c, whale = w };

这样可以很好地匹配。我遇到麻烦的地方是我想获得一份没有匹配鲸鱼的螃蟹 list 。 Crab Id = 2。然后我想获取没有匹配螃蟹的鲸鱼,即 Whale Id = 5。

谁能告诉我如何编写这些查询?

最佳答案

如果您只想选择螃蟹。

var result = crabs.Where(c => whales.All(w => w.Id != c.Id));

关于c# - 如何从 ID 不匹配的两个列表中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11751858/

相关文章:

c# - 数据尚未插入数据库(使用 SqlDataSource)

c# - 添加一批实体。如何确定调用 SaveChanges() 时哪些实体失败

c# - 比较两个列表如果找到匹配更新第一个列表属性

c# - 使用 LINQ 从 2 个列表中返回列表

c# - 从 WebSocketCollection 获取特定客户端

c# - Sum() 导致异常而不是在没有行时返回 0

c# - 对象是否包含有关使用它们的上下文的信息的代码气味?

c# - 寻找一种有效的方法来使用 Entity Framework Core 为每一行检索一组多对多子项

c# - 使用 StreamReader 生成 ID(最后一行)

c# - 我可以结合使用 LINQ 和 foreach 来将对象添加到集合中吗?