问题标签 [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.

0 投票
1 回答
2357 浏览

linq - Linq 如何在 IOrderedEnumerable 方法之后使用 IEnumerable 方法?

在 Linq 中,扩展方法像Where返回一个IEnumerable集合,而排序方法像OrderBy返回一个IOrderedEnumerable集合。

OrderBy因此,如果您有一个以(即返回一个)结尾的查询,那么您IOrderedEnumerable以后不能附加一个Where方法——编译器会抱怨传递给的类型Where

但是,如果您在一个查询中完成所有操作,那很好!

我查看了 Reflector 中的程序集,看看编译器是否重新排序了任何操作,但似乎没有。这是如何运作的?

0 投票
2 回答
359 浏览

linq - 方法返回 IOrderedEnumerable 是否有利而不是 IEnumerable?

返回 IOrderedEnumerable 而不是 IEnumerable 的方法是否有利?

0 投票
1 回答
1102 浏览

linq - IOrderedEnumerable 和防御性编程

我喜欢防御性编程。我讨厌抛出异常,但这不是我的问题。

我对 linQ 进行了扩展,以便能够使用列名执行订单

对于防御性编程,如果列名无效,此方法将返回给定的枚举。

现在我需要使用 ThenBy进行二次排序。所以我需要那个签名:

我需要返回一个 IOrderedEnumerable。我的问题是保持我的防御性编程功能:我必须返回给定的集合是无效的列名。

有没有一种干净的方法来做到这一点?我所想的只是一些技巧:

  • 使用反射按第一个找到的属性排序,这是有风险的,因为该属性可能不允许排序
  • 实现我自己的 IOrderedEnumerable,这也是有风险的,因为我在 IQueryable 或 IList 上执行排序,然后我执行其他 LinQ 操作,所以我担心副作用。

和建议/建议?谢谢

0 投票
1 回答
210 浏览

sql-server - 通过 Linq-to-SQL 提高对记录排序的查询性能

我正在使用查询从名为 customers 的表中获取记录,并且我想按address, housenumber, surname, name.

首先我使用了这个(DataTable)

现在我用这个:

这是提高性能的正确方法......?

OrderedEnumerableRowCollectionvs的(缺点)优点是DataTable什么?

请让我知道你应该怎么做。

0 投票
3 回答
10511 浏览

c# - 何时返回 IOrderedEnumerable?

是否应该IOrderedEnumerable纯粹用作语义值的返回类型?

例如,在表示层消费模型时,我们如何知道集合是需要排序的还是已经排序的?

ORDER BY在存储库使用子句包装存储过程的情况下呢?存储库应该返回IOrderedEnumerable吗?那将如何实现?

0 投票
1 回答
1398 浏览

.net - .Net 中的 IOrderedEnumerable.ThenBy() 是如何工作的?

我想了解 ThenBy 在 .Net 中的工作原理。(我知道怎么用,就是不明白微软是怎么实现的!)

根据文档,string_list.OrderBy(Function (x) x.length).ThenBy(Function (x) x)应该输出一个按长度排序的字符串列表,然后按字母顺序排列。它怎么可能起作用?!?第一种是按长度排序。第二个排序应该撤消第一个排序!

假设这段代码:

这是我尝试在不使用的情况下实现最后一行ThenBy

这里发生了一些魔术......是否有一些 e.GetPreviousKeySelector() 函数?事实上,我什至无法编写返回 IOrderedEnumerable 的函数!

0 投票
2 回答
1459 浏览

c# - 使用 OrderBy、ThenBy 排序

我正在尝试根据前一个排序的列对表的几列进行排序。它适用于前两列。但是,一旦我对第三列进行排序,第二列就会失去排序。据我所知,我的 foreach 循环肯定有问题。这是我的排序代码:

有任何想法吗?

更新:也许我添加了一些进一步的信息:

  • @param zusortierendeListe:这是我要排序的列表,它是一个对象列表
  • @param sortierung:这是我要排序的方向,升序或降序

对象本身是 Tabledata 列表

0 投票
3 回答
9773 浏览

c# - 是否可以在不使用 OrderBy 的情况下将 IEnumerable 转换为 IOrderedEnumerable?

SortMethod假设有一种扩展方法可以根据枚举指定的几种排序类型(即按各种属性排序)对 IQueryable 进行排序。

在 where sortMethodis的情况下null(即指定我不关心值的顺序),有没有一种方法可以代替某些默认属性进行排序,而只是将IEnumerator值作为“有序”传递而没有必须执行实际排序?

我希望能够调用这个扩展,然后可能执行一些额外ThenBy的命令。

0 投票
1 回答
2013 浏览

c# - IOrderedEnumerable.Select() 会保留元素顺序吗?

在 C# 中,将使用保留元素顺序Select()来投影元素吗?IOrderedEnumerable

  • 如果是这样,它怎么会返回一个IEnumerable,而不是一个IOrderedEnumerable
  • 如果没有,我该如何实现(除了使用foreach)?

请注意,这个问题不是这个问题的重复-我只有一个Select()子句,没有Distinct().

编辑

是的,它是 LINQ to Objects。顺便说一句,如果我实际上是在查询一些 SQL DB,答案会有所不同吗?

0 投票
2 回答
3019 浏览

c# - 将集合添加到 IOrderedEnumerable 的末尾

我目前有一堆配置文件需要加载到 IOrderedEnumerable 我当前的方法如下所示:

问题是,而不是Items等于items.OrderBy(x => x.Attribute("ID").Value)我想将它加入到当前存在的 IOrderedEnumerable 的末尾,所以每次加载新的 XDocument 并从中获取所有元素时我都不会覆盖它。我该怎么做?

编辑:我知道如果我改变这ItemsLength += Items.Count();将不再正常工作。那是我自己会改变的。