加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何判断IQueryable是否为IOrderedQueryable?

发布时间:2020-12-15 03:43:19 所属栏目:百科 来源:网络整理
导读:我有一个IQueryable.我没有打电话给OrderBy或以其他方式做任何事情. 如果我做: // for some reason,isItOrdered is always truevar isItOrdered = myQueryable is IOrderedQueryableT 为什么这是真的? (似乎不应该是.)而且,更重要的是,如何判断是否已经订
我有一个IQueryable.我没有打电话给OrderBy或以其他方式做任何事情.

如果我做:

// for some reason,isItOrdered is always true
var isItOrdered = myQueryable is IOrderedQueryable<T>

为什么这是真的? (似乎不应该是.)而且,更重要的是,如何判断是否已经订购了IQueryable? (即真正是一个IOrderedQueryable)

我想要做一些像:

if (myQueryable is IOrderedQueryable<T>)
  myQueryable = myQueryable.ThenBy(...);
else
  myQueryable = myQueryable.OrderBy(...);

解决方法

你没有显示什么是创建你可查询的开始,但也许它是以某种方式自然排序?

你有什么检查是否真的是一个IOrderedQueryable< T> – 我怀疑这只是你的查询提供者总是提供有序可查询的,即使顺序不明显.

编辑:好的,别的东西你可以尝试:

if (typeof(IOrderedQueryable<T>).IsAssignableFrom(myQueryable.Expression.Type))

…或者一般来说,打印出myQueryable.Expression.Type,看看它的样子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读