2009-06-03 84 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