Ham*_*teu -2 c# string integer sum
我有一个字符串输入,例如:
1 3 4 1 2
我想把Sum数字变成整数。我尝试了以下代码:
using System;
public class Program
{
public static void Main()
{
string input2 = "1 3 4 1 1";
string value2 = input2.Replace(" ", "+");
int val = int.Parse(value2);
Console.WriteLine(val);
}
}
Run Code Online (Sandbox Code Playgroud)
但这是不正确的。有人对此有想法吗?谢谢。
您可以尝试将Split初始字符串 ( input2) 放入项目中,TryParse将它们放入相应的intbvalues 中,然后在LinqSum的帮助下将它们放入:
using System.Linq;
...
int val = value2
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.Sum(item => int.TryParse(item, out int value) ? value : 0);
Run Code Online (Sandbox Code Playgroud)
这里所有无效的项(即不能解析为整数的项)都被忽略(我们将它们转换为0)。在这种情况下您可能希望抛出异常:
using System.Linq;
...
int val = value2
.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.Sum(item => int.Parse(item));
Run Code Online (Sandbox Code Playgroud)
最后,修改了您的代码(我们可以使用一个老技巧DataTable.Compute):
using System.Data;
...
string input2 = "1 3 4 1 1";
string formula = input2.Replace(' ', '+');
using (DataTable table = new DataTable())
{
int val = Convert.ToInt32(table.Compute(formula, null));
Console.WriteLine(val);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
265 次 |
| 最近记录: |