gpt4 book ai didi

c# - OrderBy 可以为一个元素多次评估委托(delegate)吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:57 29 4
gpt4 key购买 nike

我的一个 friend 说,在 Linq 中作为参数传递给 OrderBy() 的委托(delegate)函数只对每个元素求值一次。考虑以下情况:

var list2 = list.OrderBy(item => item.ComputationallyExpensiveFunction()).ToList();

ComputationallyExpensiveFunction() 是否真的定义为对列表中的每个元素只计算一次,或者是否存在可以对同一项目调用多次的情况?

最佳答案

OrderBy 为每个项目调用一次委托(delegate),并缓存结果。

我在文档中找不到对这种行为的提及,所以我不认为它是指定的,但实现确实这样做了(see referencesource)。

关于c# - OrderBy 可以为一个元素多次评估委托(delegate)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55792667/

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