相关疑难解决方法(0)

每个循环的C#以什么顺序迭代List <T>?

我想知道C#中的foreach循环遍历一个System.Collections.Generic.List<T>对象的顺序.

我发现关于同一主题的另一个问题,但我觉得它不能满足我的问题.

有人说未定义任何订单.但正如其他人所说,它遍历数组的顺序是固定的(从0到长度-1).8.8.4 foreach声明

还有人说,对于任何带有订单的标准类(例如List<T>)也是如此.我找不到任何文件来支持这一点.所以我知道它现在可能会起作用,但也许在下一个.NET版本中它会有所不同(即使它可能不太可能).

List(t).Enumerator没有运气也查看了文档.

另一个相关问题表明,对于Java,它在文档中特别提到:

List.iterator()以适当的顺序返回此列表中元素的迭代器."

我在C#文档中寻找类似的东西.

提前致谢.

编辑:感谢所有人的所有答案(令人惊讶的是我收到了如此多的回复).我从所有答案中理解的是,List<T>它总是按照索引的顺序迭代.但我仍然希望看到明确的文档和平,说明这一点,类似于Java文档List.

c# foreach operator-precedence

76
推荐指数
3
解决办法
5万
查看次数

C#中表单的Control属性中的控件顺序

我对FlowLayoutPanels添加到表单的controls属性的顺序有一个特殊的问题.这是我试过的,

我在垂直条带中从左到右添加了7个FlowLayoutPanel到C#窗口应用程序.然后我再次从左到右标记流布局为1,2,3,... 7.现在在表单的加载处理程序中,我编写了以下代码段,

    foreach (FlowLayoutPanel aDaysControl in this.Controls)
    {
        MessageBox.Show(aDaysControl.Tag.ToString());
    }
Run Code Online (Sandbox Code Playgroud)

我希望消息以1,2,... 7的顺序出现.但我按相反的顺序得到它(7,6,...... 1).有人可以帮助我解决我做的错误吗?

保留订单背后的原因,

我正在尝试使用代表一天的每一行进行日历控制.如果一个月从星期三开始,那么我需要在第一行(星期一)和第二行(星期二)添加一个空标签.所以顺序有点重要

c# user-interface controls winforms

5
推荐指数
2
解决办法
2万
查看次数