Linq All on empty collection

后端 未结 8 2051
面向向阳花
面向向阳花 2021-01-08 00:24

I need to check if all definitions contains some specific data. It works fine except the case when GroupBy returns empty collection.

var exist = dbContext.De         


        
8条回答
  •  别那么骄傲
    2021-01-08 00:58

    What about writing your own extension method? (I am pretty sure you will name it better)

    public static bool NotEmptyAll(
        this IEnumerable collection, 
        Func predicate)
    {
        return collection != null
            && collection.Any()
            && collection.All(predicate);
    }
    

    Then call it instead of All

    var exist = definitions.Where(
            x => propertyTypeIds.Contains(x.PropertyTypeId) && x.CountryId == countryId)
             .GroupBy(x => x.PropertyTypeId)
             .NotEmptyAll(
                 ...some condition...));
    

提交回复
热议问题