2016-12-16 6 views
0

私はWindowsフォームで100のテキストボックスに割り当てる100個の要素を持つ配列を持つように配列の異なる要素を割り当てることができます。問題は、配列が便利な方法でソートされないため、forループが機能しないことです。私は考えることができるは、どのように私は別のテキストボックスC#

唯一のことは、正しいテキストボックスに正しい配列要素を割り当てるコードの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値ですが、私はすべて欲しいです一緒に温度データ。

+1

あるので、プロパティの一部だけを示し、その後DataGridViewColumn.DataPropertyName = "NameOfThePropertyYouWantToShow"を使用して手動で列を作成し、DataGridView.AutoGenerateColumns = falseを設定覚えておきたい場合は、私はあなたがリストボックスまたはGridViewのと並べ替えの方法にしたほうが良いかもしれません疑いますしかし、問題のあなたの記述に基づいて実際に伝えることは不可能です。あなたは「配列」と言っていますが、配列OFとは何か分かりません。文字列?または、テキストボックスがすでに存在するか(または動的に作成しているか)、または何らかの形でそれらに入れたいデータに関連するコントロール名がある場合... –

+0

linq 'OrderBy'を使用して、 VAR 'によって注文する部分文字列を指定することによって有用な方法は、私は通常、意味のあることがテキストボックスの名前を変更= array.OrderBy(I => i.Substring(18))。ToListメソッド()' – JaredStroeb

+0

ソート。場合によってはリストを作成します必要な順序でテキストボックスをリストに追加します。 List <>項目のインデックスは、現在の配列のインデックス番号になります。 – jdweng

答えて

0

1つの項目

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コントロールを使用して、あなたのデータを表すクラスを作成します。
データの収集を作成し、

var sortedData = data.OrderBy(item => item.Id).ToArray(); 

DataGridViewそれをソートするDataGridView使用LINQに追加する前にデータをソートしたい場合には、すべてのアイテムの行を生成します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; 

DataSourceとしてコレクションを追加配列、および列内のすべてのプロパティの列MeasureData
あなたは、デフォルトではそれがtrue