如果我有一个类似"20"
的字符串,如何将其转换为整数,以便将其添加到另一个数字?
这里有一些代码可以解释我希望它如何:
string myString = "20";
myString = myString + 2;
现在字符串myString
应为"22"
。
答案 0 :(得分:5)
您需要将字符串转换为int
,然后再添加。稍后您可以将结果int
转换为字符串。
要将字符串转换为整数,您可以使用Convert.ToInt32
,int.Parse
或更安全的选项int.TryParse
,如果字符串无效,则不会引发异常。
int number1;
int number2 = 2;
if(!int.TryParse(myString, out number1)
{
//invalid string
}
string result = (number1 + number2).ToString();
答案 1 :(得分:4)
string myString = "20";
myString = Convert.ToString(Convert.ToInt32(myString) + 2);
答案 2 :(得分:3)
你需要解析字符串才能算术:
string myString = "20";
myString = (int.Parse(myString) + 2).ToString();
答案 3 :(得分:0)
这就是它可以做到的方式
string myString = "20";
int val = Convert.ToInt32(myString);
myString = (val + 2).ToString;
答案 4 :(得分:0)
另一种有趣的方法是:
using System.Data;
//...
string myString = "20";
string addition = "+ 2";
DataTable dt = new DataTable();
myString = dt.Compute(myString + addition, string.Empty).ToString();
这里更有趣:
using System;
using System.CodeDom.Compiler;
//...
string myString = "20";
CodeDomProvider codeProvider = CodeDomProvider.CreateProvider("CSharp");
ICodeCompiler icc = codeProvider.CreateCompiler();
System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.GenerateInMemory = true;
CompilerResults results = icc.CompileAssemblyFromSource(
parameters,
string.Format(@"
namespace N{{
public static class C{{
public static string M(){{
return ({0} + {1}).ToString();
}}}}}}",
myString,
"2"));
myString = results
.CompiledAssembly
.GetType("N.C")
.GetMethod("M")
.Invoke(null, null)
.ToString();
当然,除非没有别的办法,否则不建议这样做。仅作为好奇心发布: - )
答案 5 :(得分:0)
不确定您的实际需求,但对于示例代码,您可能会更好:
int myInt = 20;
myInt = myInt + 2;
//To do something:
something.Text = myInt.ToString();
答案 6 :(得分:0)
string myString = "20";
int num = Convert.ToInt32(myString) + 2;
myString = num.toString();