我必须从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 :(得分: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时,将在Equals上跳过它。所以每个字段都应匹配,除非它为空或空。