2016-12-21 5 views
2

私はリスト/配列を使い慣れておらず、私が取り組んでいるプロジェクトで道路ブロックを発見しました。私は2つの別々のメソッドを持つ計算機で作業しています.1つはユーザーが電卓に入力したものを追加する方法で、もう1つはaddメソッドからの入力を計算する方法です。 addメソッドからのデータ入力でリストを取得し、calculateメソッドを使用してaverage/min/maxを計算する際に問題を抱えています。計算機には、追加ボタンと計算ボタンがあります。 calculateメソッドにデータを入力してaddメソッドからリストを正しく呼び出すにはどうすればよいですか?C#リストをメソッドに正しく呼び出すことの問題

パブリックパーシャルクラスfrmRealEstateCollections:フォーム {パブリックfrmRealEstateCollections(){ のInitializeComponent(); }

private void btnAdd_Click(object sender, EventArgs e) 
{ 
    // declare variables 
    decimal decPropertyValue = 0m; 
    List<decimal> decValue = new List<decimal>(10); 

    // Data Validation 
    try 
    { 
     decPropertyValue = Convert.ToDecimal(txtPropertyValue.Text); 
    } 
    catch (FormatException) 
    { 
     MessageBox.Show("Please Input Numeric value", 
      "Error", 
      MessageBoxButtons.OK, 
      MessageBoxIcon.Asterisk); 
     txtPropertyValue.Focus(); 
    } 

    // call list 

    decValue = Valuelist(decValue, decPropertyValue); 

    foreach (decimal decDisplay in Valuelist(decValue, decPropertyValue)) 
    { 
     lstEnteredValues.Items.Add(decDisplay.ToString("C2")); 
    } 
} 

public List<decimal> Valuelist(List<decimal> decValue, decimal decPropertyValue) 
{ 
    // Create list elements unknown? 
    decValue = new List<decimal>(10); 

    // Add Value Entered by user to list 
    decValue.Add(decPropertyValue); 

    // return list 
    return decValue; 
} 

private void btnCalculate_Click(object sender, EventArgs e) 
{ 
    // Declared List/Variables to call list Method 
    List<decimal> decValue = new List<decimal>(10); 
    decimal decPropertyValue = 0m; 
    decimal decAverage = 0m; 

    // Call List 
    decValue = Valuelist(decValue, decPropertyValue); 
    decAverage = decValue.Average(); 

    foreach (decimal decDisplay in Valuelist(decValue, decPropertyValue)) 
    { 
     lstAnalysis.Items.Add(decAverage 
      } 

} 

}

+1

「最初のコンボボックスからリストを取得する際に問題が発生しました」は、あなたの問題の十分な説明ではありません... – John3136

+0

問題を詳しく説明してください。 – DarkKnight

+0

私は投稿を編集しました。もっと明確にする必要がある場合は、手を差し伸べてください。 – Yanka

答えて

2

あなたは、リストを再作成するため、任意の以前の値を上書きしています。リストへの参照を保持し、その単一インスタンスで操作するだけです。

public partial class frmRealEstateCollections : Form 
{ 
    private List<decimal> _decimalValues = new List<decimal>(); 

    public frmRealEstateCollections() 
    { 
     InitializeComponent(); 
    } 

    private void btnAdd_Click(object sender, EventArgs e) 
    { 
     // declare variables 
     decimal decPropertyValue = 0m; 

     // Data Validation 
     try 
     { 
      decPropertyValue = Convert.ToDecimal(txtPropertyValue.Text); 
     } 
     catch (FormatException) 
     { 
      MessageBox.Show("Please Input Numeric value", 
       "Error", 
       MessageBoxButtons.OK, 
       MessageBoxIcon.Asterisk); 
      txtPropertyValue.Focus(); 
     } 

     // call list 
     _decimalValues.Add(decPropertyValue);  

     lstEnteredValues.Items.Add(decPropertyValue.ToString("C2"));   
    } 

    private void btnCalculate_Click(object sender, EventArgs e) 
    { 
     // Declared List/Variables to call list Method 
     decimal decAverage = 0m; 

     // Call List 
     decAverage = _decimalValues.Average(); 

     lstAnalysis.Items.Add(decAverage); 
    } 
} 

オブジェクト指向コードをよりよく理解するには、object instancesについてお読みください。

+0

これは大きな助けになりました。私は割り当てを完了し、リストを適切に呼び出すことができました。ありがとうございました!! – Yanka

関連する問題