我需要添加用户输入的数字。这些数字将来自单个文本框,并以逗号分隔。可以使用的数字的例子是7,9,10,2,18,6。
到目前为止,这是我的代码
private void calculateButton_Click(object sender, EventArgs e)
{
string str = inputNumbTextBox.Text;
char[] delim = { ',' };
string[] tokens = str.Split(delim);
if (char.IsDigit(str, 0))
{
}
else
{
MessageBox.Show("Please enter a number");
}
}
提前致谢。
答案 0 :(得分:1)
使用int.TryParse
代替char.IsDigit
:
int sum = 0;
string[] tokens = str.Split(delim);
foreach(string str in tokens)
{
int value = 0;
if (int.TryParse(str, out value))
{
sum += value;
}
}
答案 1 :(得分:0)
这对我有用:
var text = "7,9,10,2,18,6";
var sum =
text
.Split(new [] { ',' })
.Select(x => int.Parse(x.Trim()))
.Sum();
我得到结果52。
我通常会更进一步,定义一个清洁功能,如下所示:
Func<string, int?> clean = x =>
{
var r = (int?)null;
int v;
if (int.TryParse(x.Trim(), out v))
{
r = v;
}
return r;
};
然后我可以分离出验证输入所需的任何提取逻辑。现在我的求和查询看起来像这样:
var sum =
text
.Split(new [] { ',' })
.Select(x => clean(x))
.Where(x => x.HasValue)
.Sum();