我有以下数据:

PK    OrderNumber      USERDEFFIELD
1     0001             10
2     0001             25
3     0002             20
4     0002             22
5     0002             NULL
6     0003             ABC123


数据库中的UserDefField列为VARCHAR类型。使用LINQ,如何获得每个订单的SUM(UserDefField)? NULL和非数字的UserDefField值将被视为零。我想要得到的结果是:

OrderNumber  TotalQty
0001         35
0002         42
0003          0


如果UserDefField是严格可为空的数字字段,我知道我会在foreach循环中执行此操作:

 TotalQtyForThisOrder = orders.Sum(w => w.UserDefField ?? 0 );


但是对于字符串字段,应该怎么做?非常感谢你的帮助。

最佳答案

TotalQtyForThisOrder = orders.Sum( w = > {
            int result;
            Int32.TryParse(w.UserDefField, out result);
            return result;
});

10-08 18:57