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

时间:2013-08-07 08:09:51

标签: c#

我必须从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();

1 个答案:

答案 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上跳过它。所以每个字段都应匹配,除非它为空或空。