2014-10-30 62 views
0

我想過濾一個列表,其中對象屬性等於選定的下拉列表中的字符串,但我無法獲得正確的語法。過濾器列表其中對象屬性等於一個字符串

SearchResults = FPRList.FixedPriceRepairList; 
     if (ServiceTypeFilterON) { 
      SearchResults = SearchResults.Where(fpr => fpr.SvcDescription = ddlServiceType.SelectedItem.Text); 
     } 

編輯固定 這是關鍵!忘記比較而不是分配,並添加.ToList()。 ServiceTypeFilterON布爾值被檢查,ddlServiceType.SelectedItem不爲空btw。

SearchResults = FPRList.FixedPriceRepairList; 
if (ServiceTypeFilterON) { 
     SearchResults = SearchResults.Where(fpr => fpr.SvcDescription == ddlServiceType.SelectedItem.Text).ToList(); 
} 

回答

5

你要比較值(==),不分配它們(=):

SearchResults = SearchResults.Where(fpr => fpr.SvcDescription == ddlServiceType.SelectedItem.Text); 

SearchResults = SearchResults.Where(fpr => string.Equals(fpr.SvcDescription, ddlServiceType.SelectedItem.Text)); 

還要確保ddlServiceType.SelectedItemnull調用此之前。

+0

我太傻了,只是有一個非常糟糕5分鐘! 我還需要在最後使用ToList()。 只有當selectedItem不爲null時,這部分代碼纔會運行,這就是ServiceTypeFilterON布爾值所做的事情:) 感謝您的正確方向! – Stuart 2014-10-30 11:49:04

2

您正在檢查平等,因此它應該是==

fpr.SvcDescription == ddlServiceType.SelectedItem.Text 

=是賦值運算符如您有在第一線

SearchResults = FPRList.FixedPriceRepairList; 

你分配FPRList.FixedPriceRepairListSearchResults變量是什麼。

1

你已經錯過了雙==

fpr.SvcDescription == ddlServiceType.SelectedItem.Text 
相關問題