【发布时间】:2016-12-16 16:12:18
【问题描述】:
我有一个包含 100 个元素的数组,我想将其分配给 windows 窗体中的 100 个文本框。问题是数组没有以有用的方式排序,所以 for 循环不起作用。
我唯一能想到的就是编写 100 行代码,将正确的数组元素分配给正确的文本框,但这似乎是一种可怕的做法。
数组格式的简单示例如下:
10 Air Temperature #1, 1 Minute Run Average Celsius Minute 59-60
11 Humidity, 1 Minute Run Average % Minute 59-60
12 Air Temperature #1, 60 Minute Run Average Celsius Minute 00-60
13 Air Temperature #1, Max(1 Minute Run Average) Celsius Minute 00-60
14 Humidity, Max(1 Minute Run Average) % Minute 00-60
15 Air Temperature #1, Min(1 Minute Run Average) Celsius Minute 00-60
16 Humidity, Min(1 Minute Run Average) % Minute 00-60
如您所见,Air Temperature 被拆分,数组的下方是 Air Temperature #2 值,但我希望所有温度数据放在一起。
【问题讨论】:
-
我怀疑使用列表框或网格视图和排序方法可能会更好,但根据您对问题的描述,无法真正判断。你说“数组”,但我们不知道它是什么数组。字符串?或者文本框是否已经存在(或者您正在动态创建它们),或者它们是否具有与您要放入其中的数据相关的控件名称......
-
您可以使用 linq
OrderBy通过指定要按var sorted = array.OrderBy(i => i.Substring(18)).ToList()排序的子字符串以有用的方式对数组进行排序 -
我通常会更改文本框的名称以使其有意义。在某些情况下,我创建一个 List
然后按您需要的顺序将文本框添加到列表中。 List 项的索引将是当前数组的索引号。