如何返回空表达式?

时间:2013-07-10 12:02:05

标签: c# linq iqueryable

如果filter.Operator等于'override',我需要返回空过滤器(非过滤器)。 怎么做?

Func<IQueryable<T>, KendoFilterDescription, IQueryable<T>> appendFilter =
    (filteredData, filter) =>
    {
        if (filter.Operator == "override")
        {
            return filteredData;
        }
        return filteredData.Where(ConvertToWhereStatement(filter), 
                                    ParsePropertyValue<T>(filter));
    };

1 个答案:

答案 0 :(得分:2)

当您谈到空过滤器时,我知道您需要返回一个不包含数据的IQueryable<T>值。

如果是这样,您可以使用辅助方法获取空的IEnumerable<T>集合。

private IEnumerable<T> GetEmptyIEnumerableCollectionHelper()
{
    yield break;
}

此辅助方法允许您填充空集合。然后,使用AsQueryable()方法获取IQueryable<T>

return this.GetEmptyIEnumerableCollectionHelper().AsQueryable();