c# - 如何使用 Linq 找出强类型表是否包含 C# 中另一个强类型表中的值
问题描述
我有两个针对具有位置的客户的强表表,其中包含“CustomerCode”和“Location”列。
在客户 A 中,有以下行:
"A", 1
"A", 2
"A", 3
在客户 B 中,有以下行:
"B", 2
"B", 5
"B", 6
我如何使用 Linq 来确定客户 B 是否有任何位置,与客户 A 相同。
我想做这样的事情,但在 linq 中:
var doesExist = false;
foreach(var a in customersA)
{
if (customersB.Select(b => b.Location).Contains(a.Location))
{
doesExist = true;
break;
}
}
例如,我想做这样的事情:
customersA.Select(a => a.Location).Any(customersB.Select(b => b.Location)
解决方案
注意我假设您需要一个布尔值来确定两个表中是否有任何客户共享一个位置。并假设您不在乎哪个客户有匹配 - 只是有一个匹配。
如果您想在 LINQ 语句中全部使用,请嵌套 Any 语句,然后比较 Location 属性:
bool sameLocationFound = customersB.Any(b => customersA.Any(a => a.Location == b.Location));
我将此代码读作“查找是否存在任何客户 B,以便任何客户 A 与 B 共享位置”。
推荐阅读
- postgresql - 任何使用 NAMEDATALEN 在生产中运行 Postgresql 的人增加到 128 或更多?
- ios - 从导航栏重新加载上一个视图
- python - Django Rest Framework 密码和唯一电子邮件的额外 kwargs 字段
- php - 使用 laravel 插入 mysql
- reactjs - 将 Reactjs 与 electronjs 一起使用得到意外的令牌 '<' 错误
- botframework - Botframework Composer 聊天机器人从中断的地方继续
- python - 使用numpy的矩阵矩阵中的元素总和
- android - BaseClass 中的 Kotlin 泛型。试图通过 BaseFragment 中的泛型类型获取 ViewModel
- unix - 生成连续编号的 url
- arrays - 当仅使用 1 和 0(考虑 CPU 缓存)时,我应该对 md 数组使用按位运算而不是整数类型吗?