c# - 如何选择 ListA 中的项目,这些项目的属性与 ListB 中的项目属性相匹配?

标签 c#

我有一个 List<A> ,其中 A 包含一个名为 TypeId 的属性, 和一个 List<B> ,其中 B 还包含一个名为 TypeId 的属性

我想选择 List<A> 中的所有项目其中 List<B>包含一项 B.TypeId == A.TypeId

ListA.Add(new A { TypeId = 1 });
ListA.Add(new A { TypeId = 2 });
ListA.Add(new A { TypeId = 3 });

ListB.Add(new B { TypeId = 3 });
ListB.Add(new B { TypeId = 4 });
ListB.Add(new B { TypeId = 1 });

???? // Should return items 1 and 3 only

最有效的方法是什么?

我知道这很简单,但我的大脑今天感觉很蠢....

最佳答案

使用 LINQ,使用 Join 方法相当简单。

var join = ListA.Join(ListB, la => la.TypeId, lb => lb.TypeId, (la, lb) => la);

关于c# - 如何选择 ListA 中的项目,这些项目的属性与 ListB 中的项目属性相匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759948/

相关文章:

c# - 访问证书时出错 : Keyset Does Not Exist

c# - 出现错误“必须声明一个主体,因为它没有标记为抽象或外部”

C# LINQ 检测插入

c# - 如何通过单选按钮在sql server中插入值

c# - 将 utf8 转换为 1251

c# - Microsoft Graph 列出 OneDrive 项目

c# - DetailsView 插入的默认值

c# - 在 c# 中构建一个整数数组,每个调用 c++ 或在 c++ 中构建并传递给 c#?

c# - 当您升级到 C# 3.0/VS2008 时,您的编码标准文档有何变化?

c# - 为什么在这个数据库连接中使用while循环?