正确调用列表方法的 C# 问题
C# Issues with calling list to method properly
我是 lists/arrays 的新手,在我从事的项目中遇到了障碍。我正在使用两种不同方法的计算器,一种是将用户输入的内容添加到计算器中,另一种方法是计算来自 add 方法的输入。我在使用添加方法输入的数据检索列表并将其用于计算方法计算 average/min/max 时遇到问题。计算器有一个添加按钮和一个计算按钮。如何使用输入到计算方法的数据从添加方法正确调用列表?
public 部分 class frmRealEstateCollections : 表格
{
public frmRealEstateCollections()
{
初始化组件();
}
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
}
}
}
您正在重新创建列表,因此会覆盖所有以前的值。您应该保留对该列表的引用并仅对该单个实例进行操作。
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 以更好地理解面向对象的代码。
我是 lists/arrays 的新手,在我从事的项目中遇到了障碍。我正在使用两种不同方法的计算器,一种是将用户输入的内容添加到计算器中,另一种方法是计算来自 add 方法的输入。我在使用添加方法输入的数据检索列表并将其用于计算方法计算 average/min/max 时遇到问题。计算器有一个添加按钮和一个计算按钮。如何使用输入到计算方法的数据从添加方法正确调用列表?
public 部分 class frmRealEstateCollections : 表格 { public frmRealEstateCollections() { 初始化组件(); }
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
}
}
}
您正在重新创建列表,因此会覆盖所有以前的值。您应该保留对该列表的引用并仅对该单个实例进行操作。
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 以更好地理解面向对象的代码。