如何在where子句
中使用if条件public static void IfCondition()
{
var number = 10;
var result =from ans in number where if(number < 5 )select "false" else select "true" ;
}
我出错的地方请帮帮我。
答案 0 :(得分:0)
number
是int
,它不会实现IEnumerable
或IEnumerable<T>
,因此您无法使用LINQ。
如果您有一个名为int
的{{1}}集合,您可以执行以下操作:
numbers
答案 1 :(得分:0)
您可以使用let clause来解决问题。
var number = 10;
var result =from ans in youNumbersCollection
let trueFalse = (number < 5) ? "false" : "true"
where yourColum = trueFalse;
答案 2 :(得分:0)
那段代码毫无意义。这不是LINQ的地方,LINQ用于查询数据列表。该代码应该简单:
var result = number < 5 ? "true" : "false"
'where'子句的内容是一个计算结果为bool的表达式,就像'if'语句的内容一样。如果您正在编写有效的LINQ查询,那么'where'子句可能是这样的:
where number < 5
此外,您混淆了过滤和投影。 'where'子句用于确定是否在处理中包含项目,而'select'子句是您处理它的位置。根据项目的值输出不同的结果是你在'select'子句中做的,而不是'where'子句,例如。
from item in list
where item.IsActive
select item.Number > 5 ? "true" : "false"
这将过滤掉IsActive为false的列表中的项目,并仅处理其中的项目。对于那些未过滤掉的项目,它会根据数字是否大于5输出“true”或“false”。