我有一个包含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
正如您所看到的,气温被分开,阵列的下方是气温#2值,但我希望所有温度数据都在一起。
答案 0 :(得分:0)
创建一个在一个项目中表示数据的类
class MeasureData
{
public int Id { get; set; }
public string Description { get; set; }
public string AverageData { get; set; }
public string Unit { get; set; }
public string Minutes{ get; set; }
}
而不是文本框使用DataGridView
控件
创建数据集合并将集合DataSource
添加到DataGridView
var data = new MeasureData[]
{
new MeasureData
{
Id = 10,
Description = "Air Temperature #1",
AverageData = "1 Minute Run Average",
Unit = "Celsius",
Minutes = "Minute 59-60"
},
new MeasureData
{
Id = 11,
Description = "Humidity",
AverageData = "1 Minute Run Average",
Unit = "%",
Minutes = "Minute 59-60"
}
// and so on
};
myDataGridView.DataSource = data;
如果您想在添加到DataGridView
之前想要排序数据,请使用LINQ对其进行排序
var sortedData = data.OrderBy(item => item.Id).ToArray();
DataGridView
将为数组中的每个项生成行,并为类MeasureData
中的每个属性生成列。
如果您只想显示部分属性,请使用DataGridViewColumn.DataPropertyName = "NameOfThePropertyYouWantToShow"
手动创建列,并记住设置DataGridView.AutoGenerateColumns = false
,因为默认情况下为true