问题标签 [iorderedenumerable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq - Linq 如何在 IOrderedEnumerable 方法之后使用 IEnumerable 方法?
在 Linq 中,扩展方法像Where
返回一个IEnumerable
集合,而排序方法像OrderBy
返回一个IOrderedEnumerable
集合。
OrderBy
因此,如果您有一个以(即返回一个)结尾的查询,那么您IOrderedEnumerable
以后不能附加一个Where
方法——编译器会抱怨传递给的类型Where
。
但是,如果您在一个查询中完成所有操作,那很好!
我查看了 Reflector 中的程序集,看看编译器是否重新排序了任何操作,但似乎没有。这是如何运作的?
linq - 方法返回 IOrderedEnumerable 是否有利而不是 IEnumerable?
返回 IOrderedEnumerable 而不是 IEnumerable 的方法是否有利?
linq - IOrderedEnumerable 和防御性编程
我喜欢防御性编程。我讨厌抛出异常,但这不是我的问题。
我对 linQ 进行了扩展,以便能够使用列名执行订单
对于防御性编程,如果列名无效,此方法将返回给定的枚举。
现在我需要使用 ThenBy进行二次排序。所以我需要那个签名:
我需要返回一个 IOrderedEnumerable。我的问题是保持我的防御性编程功能:我必须返回给定的集合是无效的列名。
有没有一种干净的方法来做到这一点?我所想的只是一些技巧:
- 使用反射按第一个找到的属性排序,这是有风险的,因为该属性可能不允许排序
- 实现我自己的 IOrderedEnumerable,这也是有风险的,因为我在 IQueryable 或 IList 上执行排序,然后我执行其他 LinQ 操作,所以我担心副作用。
和建议/建议?谢谢
sql-server - 通过 Linq-to-SQL 提高对记录排序的查询性能
我正在使用查询从名为 customers 的表中获取记录,并且我想按address, housenumber, surname, name
.
首先我使用了这个(DataTable)
现在我用这个:
这是提高性能的正确方法......?
OrderedEnumerableRowCollection
vs的(缺点)优点是DataTable
什么?
请让我知道你应该怎么做。
c# - 何时返回 IOrderedEnumerable?
是否应该IOrderedEnumerable
纯粹用作语义值的返回类型?
例如,在表示层消费模型时,我们如何知道集合是需要排序的还是已经排序的?
ORDER BY
在存储库使用子句包装存储过程的情况下呢?存储库应该返回IOrderedEnumerable
吗?那将如何实现?
.net - .Net 中的 IOrderedEnumerable.ThenBy() 是如何工作的?
我想了解 ThenBy 在 .Net 中的工作原理。(我知道怎么用,就是不明白微软是怎么实现的!)
根据文档,string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)
应该输出一个按长度排序的字符串列表,然后按字母顺序排列。它怎么可能起作用?!?第一种是按长度排序。第二个排序应该撤消第一个排序!
假设这段代码:
这是我尝试在不使用的情况下实现最后一行ThenBy
:
这里发生了一些魔术......是否有一些 e.GetPreviousKeySelector() 函数?事实上,我什至无法编写返回 IOrderedEnumerable 的函数!
c# - 使用 OrderBy、ThenBy 排序
我正在尝试根据前一个排序的列对表的几列进行排序。它适用于前两列。但是,一旦我对第三列进行排序,第二列就会失去排序。据我所知,我的 foreach 循环肯定有问题。这是我的排序代码:
有任何想法吗?
更新:也许我添加了一些进一步的信息:
- @param zusortierendeListe:这是我要排序的列表,它是一个对象列表
- @param sortierung:这是我要排序的方向,升序或降序
对象本身是 Tabledata 列表
c# - 是否可以在不使用 OrderBy 的情况下将 IEnumerable 转换为 IOrderedEnumerable?
SortMethod
假设有一种扩展方法可以根据枚举指定的几种排序类型(即按各种属性排序)对 IQueryable 进行排序。
在 where sortMethod
is的情况下null
(即指定我不关心值的顺序),有没有一种方法可以代替某些默认属性进行排序,而只是将IEnumerator
值作为“有序”传递而没有必须执行实际排序?
我希望能够调用这个扩展,然后可能执行一些额外ThenBy
的命令。
c# - IOrderedEnumerable.Select() 会保留元素顺序吗?
在 C# 中,将使用保留元素顺序Select()
来投影元素吗?IOrderedEnumerable
- 如果是这样,它怎么会返回一个
IEnumerable
,而不是一个IOrderedEnumerable
? - 如果没有,我该如何实现(除了使用
foreach
)?
请注意,这个问题不是这个问题的重复-我只有一个Select()
子句,没有Distinct()
.
编辑
是的,它是 LINQ to Objects。顺便说一句,如果我实际上是在查询一些 SQL DB,答案会有所不同吗?
c# - 将集合添加到 IOrderedEnumerable 的末尾
我目前有一堆配置文件需要加载到 IOrderedEnumerable 我当前的方法如下所示:
问题是,而不是Items
等于items.OrderBy(x => x.Attribute("ID").Value)
我想将它加入到当前存在的 IOrderedEnumerable 的末尾,所以每次加载新的 XDocument 并从中获取所有元素时我都不会覆盖它。我该怎么做?
编辑:我知道如果我改变这ItemsLength += Items.Count();
将不再正常工作。那是我自己会改变的。