gpt4 book ai didi

c# - 从 lambda 表达式中的函数调用获取返回值

转载 作者:行者123 更新时间:2023-11-30 20:35:21 32 4
gpt4 key购买 nike

考虑以下 C# 行:

var item = listOfItems.FirstOrDefault(i => GetResult(i) <= upperLimit);

我的问题是,有没有办法从该行中获取 GetResult(i) 的返回值?

显而易见的答案是有两行:

var item = listOfItems.FirstOrDefault(i => GetResult(i) <= upperLimit);
var result = GetResult(item);

但是调用同一个函数两次似乎效率有点低……有没有一种方法只调用一次就得到结果

最佳答案

您可以使用它(假设 GetResult 返回一个 int):

int? result = null;
var item = listOfItems.FirstOrDefault(x => (result = GetResult(x)) <= upperLimit);

此解决方案将保留 FirstOrDefault惰性:它将在找到第一个匹配项时停止。

关于c# - 从 lambda 表达式中的函数调用获取返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38102338/

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