【问题标题】:Convert a LINQ query to LINQ extensions [closed]将 LINQ 查询转换为 LINQ 扩展 [关闭]
【发布时间】:2018-02-01 09:05:28
【问题描述】:

我想将我的 LINQ 转换为 LINQ 扩展方法。这是我的代码:

var fullLastHb = from hb in buklinq.DeviceHeartbeat
                 join hb2 in lastHbTime
                 on new { hb.IdDevice, hb.Timestamp } equals new { hb2.IdDevice, hb2.Timestamp }
                 select hb;

提前谢谢你

【问题讨论】:

  • 示例:var fullLastHb = buklinq.DeviceHeartbeat.Join(lastHbTime, ......
  • 离题;说你想从 query syntax (from a in b select a) 到 method syntax (b.Select(a => a)) 会更惯用。
  • Resharper,右键->转换为linq链法

标签: c# sql linq


【解决方案1】:

很简单:

var fullLastHb = buklinq.DeviceHeartbeat.Join(lastHbTime,
                       hb => ew { hb.IdDevice, hb.Timestamp },
                       hb2 => new { hb2.IdDevice, hb2.Timestamp },
                       (hb, hb2) => hb);

你总是可以这样翻译:

from x in source1
join y in source2
on selector1 equals selector2
select projection

source1.Join(source2, x => selector1, y => selector2, (x,y) => projection);

source1.Join(source2, x => selector1, y => selector2, (x,y) => new {x, y})
       .Select(z => projection);

Jon Skeet

很好地解释了查询语法 是如何转换为方法语法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-19
    • 2018-07-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多