C# 中的 SQL Linq 表达式有问题?



尝试执行以下操作,但出现错误,即 a ( 是预期的。有人可以告诉我我做错了什么吗?

var q = from kvp2 in entityToCluster
join kvp3 in clusterToQVR on kvp2.Value equals kvp3.Key
where kvp2.key equals entity1 or kvp2.key equals entity2
select new {entity = kvp2.Key, cluster = kvp2.Value, qvRule = kvp3.Value};

如果我将查询更改为此可能的解决方案,则会出现不同的错误:

编译器错误消息: CS0122: 'System.Collections.Generic.KeyValuePair.key' 由于其保护级别而无法访问

var q = from kvp2 in entityToCluster
join kvp3 in clusterToQVR on kvp2.Value equals kvp3.Key
where kvp2.key == entity1 || kvp2.key == entity2
select new {entity = kvp2.Key, cluster = kvp2.Value, qvRule = kvp3.Value};
key

是字典的私人成员,因此使用大写字母Key将解决问题

where kvp2.Key equals entity1 or kvp2.Key equals entity2

最新更新