从列表搜索值可能包含空值

本文关键字:包含 空值 列表 搜索 | 更新日期: 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或为空。