2010-07-29 48 views
3

在C#3.0中,当我以下面的方式将一个字符串数组传递给一个方法时,我定义它们的顺序会保留还是存在顺序可以改变的条件?这是记录在哪里,我没有看到?新定义的C#数组的顺序

CalculateOmniturePageName(new[] { Model.GetOmnitureDomain(), Model.SectionTitle, Model.Title }) 

回答

10

该订单是固定的。第一项是索引0,下一项是索引1,依此类推。它在spec中定义,请参阅section 12.6

表达式以递增的顺序初始化数组元素,从索引为零的元素开始。

整个(带注释)spec is available in dead-tree form,是一个令人惊讶的容易和启发阅读。

+0

已添加到阅读列表中。 ;-) – Mattio 2010-07-29 03:11:34

0

像你一样使用的数组总是按照你放入的顺序排序。这与散列表,或者集合或者字典对比,它们将没有特定的顺序。还有其他'无序'收集类型,但这足以说明我的观点。另一方面,如果您想使用另一个容器来保留您放入的订单,您还可以使用列表<>