gpt4 book ai didi

c# - Lambda Where 子句错误

转载 作者:行者123 更新时间:2023-12-02 22:38:04 25 4
gpt4 key购买 nike

我正在尝试编写如下所示的 lambda,但我的语法不正确。

Result = ListOfNumbers.Where(val => { val != Num1; val != Num2; }).ToList()[0];

我得到的错误是

Not all code paths return a value in lambda expression of type 'System.Func<int,int,bool>'

也许有更好的方法...我知道 ListOfNumbers 中有数字 1、2 和 3(按此顺序)。此时的 Num1 和 Num2 都将是 1、2 或 3(但它们不能相同)。我希望我的结果是 ListOfNumbers 中的“其他”数字。希望这很清楚。如果您能想到一种更简洁的方法,我很乐意听取。

有什么想法吗?

最佳答案

你需要把它改成

val => val != Num1 && val != Num2 

如果我将您提供的代码作为一个函数来编写,您可能会发现问题所在:

public bool Predicate(int val)
{
val != Num1;
val != Num2;
}

即- 返回语句在哪里?

尽管 - 请注意,这实际上将无法编译并出现错误 Only assignment, call, increment, decrement, and new object expressions can be used as a statement - lambdas 中的编译器规则略微不同,所以你得到一个不同的错误,但最终它是出于同样的原因 - 在你的情况下,你的 lambda 路径都没有返回任何东西。

关于c# - Lambda Where 子句错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11154768/

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