从列表搜索值可能包含空值
本文关键字:包含 空值 列表 搜索 | 更新日期: 2023-09-27 18:26:39
我必须从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();
如果你想让它成为一个过滤器,你可能会这样使用它:
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上被跳过。所以每个字段都应该匹配,除非它为null或为空。