作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写如下所示的 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/
我是一名优秀的程序员,十分优秀!