如何在由分隔符分隔的字符串中添加数字

时间:2013-12-01 22:33:18

标签: c#

我需要添加用户输入的数字。这些数字将来自单个文本框,并以逗号分隔。可以使用的数字的例子是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");
        }
    }

提前致谢。

2 个答案:

答案 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();