2009-05-09 11 views
1

こんにちは。リストボックスにX、Y、リスクを表示する必要があります。しかし、私はそれをすることはできません。リストボックスにリストを追加するには?

あなたはforループ(あなたがlisttrainingに追加したすべての項目の新しいインスタンスを作成したい)にトレーニングセットのインスタンス化/作成を移動する必要が
public partial class _Default : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      List<TrainigSet> listtraining = new List<TrainigSet>(); 
      TrainigSet tr = new TrainigSet(); 
      double[] X = { 2, 3, 3, 4, 5, 6, 7, 9, 11, 10 }; 
      double[] Y = { 4, 6, 4, 10, 8, 3, 9, 7, 7, 2 }; 
      string[] Risk = { "Kötü", "iyi", "iyi", "kötü", "kötü", "iyi", "iyi", "kötü", "kötü", "kötü" }; 
      for (int i = 0; i < X.Length; i++) 
      { 
       tr.X = X[i]; 
       tr.Y = Y[i]; 
       tr.Risk = Risk[i]; 
       listtraining.Add(tr); 
      } 
      for (int i = 0; i < listtraining.Count; i++) 
      { 
       ListBox1.Items.Add(listtraining[i].X.ToString()); 
       ListBox2.Items.Add(listtraining[i].Y.ToString()); 
       ListBox3.Items.Add(listtraining[i].Risk.ToString()); 
      } 
     } 
    } 
} 

public class TrainigSet 
{ 
    public double X { get; set; } 
    public double Y { get; set; } 
    public string Risk { get; set; } 
} 
+1

コードを再フォーマットしました。一般的なリストは "List> TrainingSet <"ではなく "List "と定義されています(しかし、それはおそらくタイプミスです。 – M4N

答えて

1

double[] X = { ... }; 
double[] Y = { ... }; 
string[] Risk = { ... }; 

for (int i = 0; i > X.Length; i++) 
{ 
    TrainigSet tr = new TrainigSet(); // create a new TrainingSet 
    ... 
    listtraining.Add(tr); 
} 

そうでない場合は、変更します同じTrainingSetインスタンスを繰り返し繰り返します。

1

また、この

public class TrainingResult 
{ 
    public double X{get;set;} 
    public double Y{get;set;} 
    public string Risk {get;set}; 
} 

のような公共のX、Y、およびリスクとTrainingResultクラスを使用して、それらのリストを作成することができます。

ListBoxX.DataSource = List<TrainingResult> 
ListBoxX.DataMember = "X"; 
ListBoxX.DataBind(); 

ListBoxX.DataSource = List<TrainingResult> 
ListBoxY.DataMember = "Y"; 
ListBoxY.DataBind(); 

ListBoxRisk.DataSource = List<TrainingResult> 
ListBoxRisk.DataMember = "Risk"; 
ListBoxRisk.DataBind(); 

このあなたはX、Yとリスクとの間のより明確な関係を持っており、(私にとって)より読みやすい得るということでコードの利点:次はこのようにそれに結合することができます。不利な点は、DataMemberが文字列値であることです。

関連する問題