在AsQueryable()上调用IOrderedEnumerable调用IEnumerable上的扩展方法,并返回IQueryable而不是IOrderedQueryable。
这对我来说没什么意义。我可以想象在IOrderedEnumerable上应该有一个返回IOrderedQueryable的IOrderedQueryable扩展方法。
所以我的问题有两部分:
public static IOrderedQueryable<TElement> AsQueryable<TElement>(this IOrderedEnumerable<TElement> source)扩展方法吗?如果没有,为什么?IOrderedEnumerable转换为IOrderedQueryable?
IOrderedEnumerable orderedEnumerable =新List().OrderBy(s => s);IOrderedQueryable orderedQueryable = //如何在这里转换orderedEnumerable?发布于 2013-06-20 13:58:34
AsQueryable()是在IEnumerable接口上定义的,重写它可能是一个问题。您可能可以合理地轻松地定义自己的AsOrderedQueryable()扩展。AsQueryable()之后应用排序。因此,new List<string>().AsQueryable().OrderBy(s => s);将返回一个IOrederedQueryable<string>。编辑:关于你最初的问题,你会写
IOrderedQueryable<string> orderedQueryable = orderedEnumerable.AsQueryable().OrderBy(s => s);
这有点迂回,但关系是使用IEnumerable将IOrderedEnumerable转换为OrderBy,并通过相同的方法将IQueryable更改为IOrderedQueryable。IOrderedEnumerable与IOrderedQueryable AFAIK之间没有直接的转换方法。
https://stackoverflow.com/questions/17215349
复制相似问题