gpt4 book ai didi

c# - 确定 IQueryable 是否已订购

转载 作者:IT王子 更新时间:2023-10-29 04:24:31 26 4
gpt4 key购买 nike

有没有办法知道一个IQueryable<T>已订购(使用 OrderByOrderbyDescending )?

所以我知道是否要调用OrderByThenBy关于收藏。

IQueryable<Contact> contacts = Database.GetContacts();

我试过了 contacts is IOrderedQueryable<Contact> , 但它总是正确的。

编辑:我只是改变了我的例子,之前的例子并没有真正表达我的观点。假设GetContacts使用 Entity Framework 并简单地返回一个表的所有记录。

稍后,我将几个函数应用于 contacts ,我不知道这些功能的作用。他们可以对 IQueryable<Contact> 进行排序或过滤.

当我取回集合时,我需要再次对它进行排序。为此,我需要知道是否需要调用 OrderBy , 或 ThenBy .因此,如果已经排序,我不会重新排序整个集合。

最佳答案

这是可能的。这是一个扩展方法:

public static bool IsOrdered<T>(this IQueryable<T> queryable)
{
if (queryable == null)
{
throw new ArgumentNullException(nameof(queryable));
}

return queryable.Expression.Type == typeof(IOrderedQueryable<T>);
}

关于c# - 确定 IQueryable<T> 是否已订购,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8507746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com