我有n个元素的一类,并返回元素的平方和的平方根的属性:C#的选择查询不修改外部变量
public double Length
{
get
{
double sum = 0.0;
Elements.Select(t => sum += t * t);
return Math.Sqrt(sum);
}
}
然而,这不工作 - 不管价值的元素,总和仍然是0.0。
为什么不能正常工作?
注:我已经实现了它的另一种方式,但我看明白了,为什么上面的代码不起作用
所以你说因为指定的代码没有对选定项目进行任何后续枚举,所以不会评估表达式,并且求和不会改变? – 3Pi
是的,确切地说。而且您不应只枚举所选项目,以便执行lambda。 – dtb