当没有使用order by时,Linq to objects是否加入了指定的默认顺序?

时间:2011-08-18 02:27:42

标签: c# .net linq linq-to-objects

我收到了以下查询

IEnumerable<string> values = from first in goodOrdered
join second in badOrdered on first.ToLower() equals
second.ToLower()
select second;

目前我的测试显示最终结果实际上是goodRrdered,就像我想要的那样。我可以期望永远是真的,或者我应该提供一个强制订单顺序的命令(它会使查询更复杂,因为goodOrdered可能看起来像1,9,2,7,6)?

1 个答案:

答案 0 :(得分:9)

是的,确实如此。根据{{​​3}}:

  

Join保留外部元素的顺序,并为每个元素保留   这些元素,内在匹配元素的顺序。

当然,如果文档中没有指明,那将是完全不同的事情。您可能要考虑的另一个问题是负责维护代码的开发人员,以及您是否希望他们知道/记住Join的合同包括保留外部序列的顺序......