【发布时间】:2016-08-18 11:52:00
【问题描述】:
我有以下代码:
List<int> no = new List<int>() { 1, 2, 3, 4, 5 };
var res2 = no.Sum(a => a * a);
Console.WriteLine(res2);
no.Add(100);
Console.WriteLine(res2);
我希望得到以下结果:
55
10055
但两人都是 55 岁
55
55
我见过here 是关于延迟评估的,但没有帮助。 Sum 是扩展方法,但结果不是我说的。为什么?
【问题讨论】:
-
您期望的结果是什么?
-
那么您期望得到什么结果?
-
Sum不会被推迟。只有返回IEnumerable的方法会被延迟。 -
问题是什么?你期望得到什么,你得到了什么?