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

前端之家收集整理的这篇文章主要介绍了c# – 如何判断IQueryable是否为IOrderedQueryable?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个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,看看它的样子.

原文链接:https://www.f2er.com/csharp/93947.html

猜你在找的C#相关文章