gpt4 book ai didi

c# - 强制 linq sum 返回 null

转载 作者:行者123 更新时间:2023-12-02 05:40:01 24 4
gpt4 key购买 nike

我认为答案很简单:

List<int?> intList = new List<int?>(){null, null, null};
int? sum = list.Sum();
int sum2 = list.Sum(a => a.HasValue ? a.Value : 0);
int sum3 = list.Sum().Value;

Sum 总是返回 0,为什么需要 nullable?有没有办法强制 linq sum 返回 null?我在这里缺少什么?

最佳答案

这里是 Sum() 的实现

public static int? Sum(this IEnumerable<int?> source) {
if (source == null) throw Error.ArgumentNull("source");
int sum = 0;
checked {
foreach (int? v in source) {
if (v != null) sum += v.GetValueOrDefault();
}
}
return sum;

不返回 null 的原因是它的实现方式 - 使用 int sum = 0; 作为结果永远不会返回 null。

关于c# - 强制 linq sum 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537079/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com