C# 条件LINQ where语句?
我有一个linq语句,如果下拉索引不是0,我想添加一个额外的where子句C# 条件LINQ where语句?,c#,.net,linq,lambda,C#,.net,Linq,Lambda,我有一个linq语句,如果下拉索引不是0,我想添加一个额外的where子句 people.Where(n.surname == "surname" || n.forename == "forename" && (dropdown.SelectedIndex > 0) ? n.id = dropdown.SelectedValue : n.id > 0).Select(n => n); 我甚至不确定我所尝试的是否可行 我想这样做,而不是写两个不同的声明 有什么
people.Where(n.surname == "surname" || n.forename == "forename" && (dropdown.SelectedIndex > 0) ? n.id = dropdown.SelectedValue : n.id > 0).Select(n => n);
我甚至不确定我所尝试的是否可行
我想这样做,而不是写两个不同的声明
有什么想法吗
谢谢幸运的是,这很容易,因为查询包括:
var query = people.Where(n.surname == "surname" || n.forename == "forename");
if (dropdown.SelectedIndex > 0)
{
query = query.Where(n => n.id.ToString() == dropdown.SelectedValue);
}
看起来id是一个整数,但SelectedValue属性是一个字符串。一个或另一个需要转换。获取错误“无法从if语句query=query中的使用错误推断??我在where query=query中需要参数。where(n=>n.id==dropdown.SelectedValue);谢谢guysDon您不喜欢这个功能吗?它类似于动态SQL,但邪恶程度较低:)(修正了答案中的两个错误。我很想知道否决票是为了什么。)