コード例 #1
0
        /// <summary>
        /// Applies a series of predicates as filters on an IEnumerable.
        /// </summary>
        /// <typeparam name="T">The entity that you are querying.</typeparam>
        /// <param name="enumerable">An IEnumerable of type T entity.</param>
        /// <param name="baseQuery">A query object that will apply a series of filters.</param>
        /// <returns>A filtered IEnumerable of type T.</returns>
        public static IEnumerable <T> NPredicateBuilderWhere <T>(this IEnumerable <T> enumerable, BaseQuery <T> baseQuery)
        {
            if (baseQuery.SearchExpression == null)
            {
                throw new ArgumentNullException(nameof(enumerable));
            }

            return(enumerable.Where(baseQuery.SearchExpression.Compile()));
        }
コード例 #2
0
 /// <summary>
 /// Appends an additional search expression on an already existing search expressing using the Or comparison.
 /// </summary>
 /// <param name="currentQuery">The search expression that you are appending to the end of an already existing expression.</param>
 /// <returns>A new search expression that contains all previous expressions.</returns>
 public BaseQuery <T> Or(BaseQuery <T> currentQuery)
 {
     SearchExpression = Or(currentQuery.SearchExpression);
     return(this);
 }