C#中的ToArray()更改列表中项目的顺序

时间:2016-01-18 08:47:34

标签: c#

我正在数据库中保存一组数据。例如:

数据库上的数据

ID  name     value
0   param1    1
0   param2    2
0   param3    3
0   param4    4
0   param5    5
0   param6    6
0   param7    7
0   param8    8
1   param1    1
1   param2    2
0   param9    9
0   param10    10
1   param3    3
1   param4    4

我查询选择ID == 0的行,我得到10个数据集行作为响应。列表myCollection在循环遍历行之后创建和更新。 预期的列表将是

param1
param2
param3
param4
param5
param6
param7
param8
param9
param10

之后再更新一个结构,我正在做myCollection.ToArray()
但我得到了

param9
param10
param1
param2
param3
param4
param5
param6
param7
param8

我不知道问题出在哪里。因为我无法重现这个问题。我现在已经添加了仪器。无论是从数据库中检索数据还是在ToArray()

中进行数据检索,任何帮助都可以很好地了解问题所在。

由于

1 个答案:

答案 0 :(得分:3)

  C#中的

ToArray()更改列表中项目的顺序

不,不是。之一:

  • 数据首先没有按照定义的顺序提取(在SQL的情况下,您应该添加ORDER BY)或
  • 它已存储在不保留订单的中间对象中,例如HashSet<>Dictionary<,>

没有更多代码,我们无法诊断。但是:毫无疑问,这并不是ToArray()