我可以在LINQ Join期间访问单个列表项吗?

时间:2017-09-07 08:17:34

标签: linq join c#-4.0

我有两个清单。我想通过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)) ?

1 个答案:

答案 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 };