我有两个清单。我想通过LINQ加入他们。我希望下面的代码片段能够提供我想要实现的想法。
var lst = from param in Parameters join rule in parameterMap.MappingRules on param.Name equals rule.CompareLHS(param.Name) where rule.Compare<double>(param.Value.Value) select new { param.Name, param.Value };
上述声明无法编译,因为我正在尝试使用&#39; param&#39;在'等于'的两边。
我是否有可能再次访问第一个列表单个项目(此处为param),同时与第二个列表单个项目进行比较( param.Name等于rule.CompareLHS(param.Name)) ?
答案 0 :(得分:1)
您可以使用条件将内部联接转换为交叉联接:
var lst = from param in Parameters
from rule in parameterMap.MappingRules
where param.Name == rule.CompareLHS(param.Name)
where rule.Compare<double>(param.Value.Value)
select new { param.Name, param.Value };