我的一个 LINQ 查询有问题,所以我在 LINQPad 中制作了一个简化版本来帮助我。问题是,我不明白为什么它仍然没有按照我认为应该的方式进行......
var list = "1 2 3 4".Split();
var result = list.FirstOrDefault(x =>
x == "3"
&& true);
result.Dump();
这返回 3
,就像人们假设的那样。
但是,当我运行它时:
var list = "1 2 3 4".Split();
var result = list.FirstOrDefault(x =>
x == "3"
&& false ? false : true);
我得到了1
。最后一行是实际代码的简化。这两个示例都应在最后一行给出 true
,这将返回 3
,但使用条件运算符的查询会在那里引发问题。
我错过了什么?
最佳答案
你的测试表达式是这样关联的:
(x == "3" && false) ? false : true
而不是像这样:
x == "3" && (false ? false : true)
关于c# - ? : Conditional Operator in LINQ not working as expected,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10198528/