2009-06-03 85 views
3

我有我想要一个额外的where子句添加到,如果一个下拉指数不为0有条件的LINQ where语句?

people.Where(n.surname == "surname" || n.forename == "forename" && (dropdown.SelectedIndex > 0) ? n.id = dropdown.SelectedValue : n.id > 0).Select(n => n); 

我甚至不知道我想什么是可能的LINQ的声明?

我想这样做,而不必写两个不同的语句。

任何想法?

感谢

回答

11

幸运的是,这是容易的,因为查询组成:

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

貌似ID是一个整数,但SelectedValue属性是一个字符串。其中一个或另一个需要转换。 – tvanfosson 2009-06-03 14:38:32