-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();
4

1 回答 1

0

If you meant it to be a filter, you could probably use it like this:

        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)));

So when a value is NULL, it will be skipped on the Equals. So each field should be match unless it's null or empty.

于 2013-08-07T08:19:01.630 回答