我尝试做的是使用表单文本框将数据输入空数组。表单将显示第一个数组(已输入值),但不接受进入文本框的值。无论我输入什么价值,它都会在整行中发布0.00美元。它甚至不会采用名称(字符串)。任何人都可以指导我朝着正确的方向前进。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WP_Week3_Part1
{
public partial class ArrayForm : Form
{
int[] deptArray = new int[5] { 1, 2, 3, 4, 5 };
double[] contArray = new double[5] { 0, 0, 0, 0, 0};
string[] nameArray = new string[5] { "", "", "", "", "" };
public ArrayForm()
{
InitializeComponent();
}
private void buttonValue_Click(object sender, EventArgs e)
{
int dept;
dept = Convert.ToInt32(textBoxDept.Text);
double cont;
cont = Convert.ToDouble(textBoxCont.Text);
textBoxDept.Text = "";
textBoxCont.Text = "";
textBoxDonor.Text = "";
labelOutput.Text = "Printing Contribution Table \n dept amount donor";
for (int i = 0; i < deptArray.Length; i = i + 1)
{
nameArray[i] = textBoxDonor.Text;
labelOutput.Text += String.Format("\n {0} {1} {2} ", deptArray[i], contArray[i].ToString("C"), nameArray[i]);
}
}
}
}
答案 0 :(得分:1)
你有两个问题:
您获得cont
值,然后不执行任何操作。你打印contArray[i]
但是在初始化为0后没有分配,所以当然它总是打印0.不确定假定的逻辑基于你的代码,但是要么打印cont
或指定数组成员。
在textBoxDoneor.Text = ""
循环中使用之前,请清除捐赠者文本框(for
)。因此,当您分配nameArray
元素时,您总是分配空字符串。你也总是分配阵列中的每个成员,不确定这是否是有意的,或者你还没有完成你的程序那么远。
答案 1 :(得分:1)
它返回$0.00
因为:
您将文字textBoxDonor
设置为空
它应该是这样的:
int dept;
dept = Convert.ToInt32(textBoxDept.Text);
double cont;
cont = Convert.ToDouble(textBoxCont.Text);
//textBoxDept.Text = "";
//textBoxCont.Text = "";
//textBoxDonor.Text = "";
labelOutput.Text = "Printing Contribution Table \n dept amount donor";
for (int i = 0; i < deptArray.Length; i = i + 1)
{
nameArray[i] = textBoxDonor.Text;
labelOutput.Text += String.Format("\n {0} {1} {2} ", deptArray[i], contArray[i].ToString("C"), nameArray[i]);
}
执行后立即检查nameArray
的内容
string arrlist = string.Empty;
foreach (var arr in nameArray.ToList())
{
arrlist = arrlist +' ' + arr.ToString();
}
MessageBox.Show(arrlist);