2013-08-07 101 views
-1

我必須搜索collection<List>,在搜索期間,列表可能包含或不包含空值。但是如果存在空值,它將從其他搜索值中搜索。從列表搜索值搜索可能包含空值

我的代碼是

List = 
     ListAssetDetail.Where(
      e =>SelectedAsset.Equals(e.AssetName) && SlectedBroad.Equals(e.BroadcasterName) && SelectedAssetfor.Equals(e.AssetFrom) && 
      SelectedGenre.Equals(e.GenreName) && SelectedBoque.Equals(e.Subcategory) && SelectedContentType.Equals(e.AssetFor)).ToList(); 
+0

你需要付出更多的努力來解釋你的問題。通過這行「列表可能包含也可能不包含空值」,您的意思是「ListAssetDetail」可能包含空值,對吧? 「其他搜索值」是指?如果查詢跳過集合中的那個對象,如果它爲空?請嘗試更清楚地解釋你的問題。 – samar

回答

0

如果你的意思是這是一個過濾器,你可能會使用這樣的:

 List = ListAssetDetail.Where(e => 
      (string.IsNullOrEmpty(SelectedAsset) || SelectedAsset.Equals(e.AssetName)) && 
      (string.IsNullOrEmpty(SlectedBroad) || SlectedBroad.Equals(e.BroadcasterName)) && 
      (string.IsNullOrEmpty(SelectedAssetfor) || SelectedAssetfor.Equals(e.AssetFrom)) && 
      (string.IsNullOrEmpty(SelectedGenre) || SelectedGenre.Equals(e.GenreName)) && 
      (string.IsNullOrEmpty(SelectedBoque) || SelectedBoque.Equals(e.Subcategory)) && 
      (string.IsNullOrEmpty(SelectedContentType) || SelectedContentType.Equals(e.AssetFor))); 

因此,當一個值爲NULL,將跳過上等於。所以每個字段應該匹配,除非它爲空或空。

+0

難道說「SelectedAsset」等是字符串嗎?在這種情況下,他/她可能是任何結構甚至是物體,他/她正試圖檢查參考。 – samar

+0

我假設像AssetName,GenreName這樣的屬性是字符串,爲什麼比較結構甚至對象名稱。正如您剛纔注意到的那樣,問題是簡潔的寫法,並基於此我做了一些假設。 –

+0

如果您在答案中提及您所設想的內容,那將會很好。謝謝。 :) – samar