【问题标题】:Can I access individual list item during LINQ Join?我可以在 LINQ 加入期间访问单个列表项吗?
【发布时间】:2017-09-07 08:17:33
【问题描述】:

我有两个列表。我想通过 LINQ 加入他们。我希望下面的代码 sn-p 应该给出我想要实现的想法。

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

上面的语句没有被编译,因为我试图在'equals'的两边都使用'param'。

在与这样的第二个列表单个项目进行比较时,我是否可以再次访问第一个列表单个项目(此处为参数)(param.Name 等于 rule.CompareLHS(param.Name)) ?

【问题讨论】:

  • 哪个部分不能编译?加入?在哪里,还是选择?你能给出这个陈述中涉及的类的部分吗?您在此语句中的目标是什么:您想要参数名称为...的所有参数和规则的组合...

标签: linq join c#-4.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 };

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    相关资源
    最近更新 更多