【问题标题】:More than one column back in linq when using Take 1使用 Take 1 时在 linq 中返回多于一列
【发布时间】:2022-10-30 22:54:47
【问题描述】:

所以我有一个表格,在该表格中有锻炼的统计数据,有两个字段英尺和英寸。我通过像这样去 linq 计算出最长的跳跃。

var playerBroadJumpHistory = await api.GetAllWorkOutsByPlayerId(playerId);
var maxBroadJumpFeet = (from u in playerBroadJumpHistory
                        where u.PlayerId == playerId
                        orderby u.BroadJumpFeet descending
                        select u).Take(1);

但我也想获得英寸的值,即 u.BroadJumpInches 在上面的示例中我将如何做到这一点但保留两个元素?我显然这样做是为了获得该人跳过那里的最大距离得分,但我需要两列数据才能显示它们。

我可以使用 select 创建一个新对象吗?

【问题讨论】:

    标签: c# entity-framework linq


    【解决方案1】:

    我发现我需要做的是这个。

    var maxBroadJumpFeet = (from u in playerBroadJumpHistory
                            where u.PlayerId == playerId
                            orderby u.BroadJumpFeet descending
                            select new {Feet = u.BroadJumpFeet, 
                           Inches =u.BroadJumpInches}).Take(1);
    

    简单地声明一个新对象就足够了。

    但是如果我希望两列都包含在最大值中,例如如果它是 5FT6 和 5FT3 obv 我希望它返回 5FT6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      相关资源
      最近更新 更多