条件LINQ在哪里声明?

时间:2009-06-03 14:30:05

标签: 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);

我甚至不确定我的尝试是否可行?

我想这样做,而不是写两个不同的陈述。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:11)

幸运的是,这很简单,因为查询构成:

var query = people.Where(n.surname == "surname" || n.forename == "forename");
if (dropdown.SelectedIndex > 0)
{
    query = query.Where(n => n.id.ToString() == dropdown.SelectedValue);
}