C#IQueryable在OrderBy中检查null ckeck

IQueryable throw“指定的参数超出了有效值的范围.”

码:

public IQueryable<T> ApplyOrder(IQueryable<T> items, GridSortDirection direction)
        {
            switch (direction)
            {
                case GridSortDirection.Ascending:
                    return items.OrderBy(_expression);
                case GridSortDirection.Descending:
                    return items.OrderByDescending(_expression);
            }
        }

其中_expression的类型是:

Expression<Func<T, TKey>> expression

这是

{x => x.customers.studentschoolenrolments.ElementAt(0).schools.Name}

我不想要这个例子.是否可以检查元素是否存在以及是否返回空字符串?

我尝试使用如下方法:

public static bool IsNullOrEmpty<T>(this IEnumerable<T> items) {
    return items == null || !items.Any();
}

但我不知道如何在items.OrderBy(_expression)中使用它;

最佳答案 我的头喜欢混淆IEnumerable和IQueryable,所以这可能是无稽之谈(但我没有看到任何db-tags).你不能像这样使用FirstOrDefault:

{x => x.customers.studentschoolenrolments.FirstOrDefault()?.schools.Name ?? string.Empty}
点赞