【发布时间】:2013-11-25 15:01:14
【问题描述】:
如果我有一个值类似于"20" 的字符串,如何将其转换为整数以便将其添加到另一个数字?
这里有一些代码可以解释我想要的样子:
string myString = "20";
myString = myString + 2;
现在字符串myString 应该是"22"。
【问题讨论】:
如果我有一个值类似于"20" 的字符串,如何将其转换为整数以便将其添加到另一个数字?
这里有一些代码可以解释我想要的样子:
string myString = "20";
myString = myString + 2;
现在字符串myString 应该是"22"。
【问题讨论】:
您需要将字符串转换为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();
【讨论】:
string myString = "20";
myString = Convert.ToString(Convert.ToInt32(myString) + 2);
【讨论】:
你需要解析字符串来做算术:
string myString = "20";
myString = (int.Parse(myString) + 2).ToString();
【讨论】:
这是可以做到的
string myString = "20";
int val = Convert.ToInt32(myString);
myString = (val + 2).ToString;
【讨论】:
不确定您的实际需求,但对于示例代码,您可能会更好:
int myInt = 20;
myInt = myInt + 2;
//To do something:
something.Text = myInt.ToString();
【讨论】:
另一种有趣的方法是:
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();
当然,这都不推荐,除非没有其他办法。只是出于好奇而发布:-)
【讨论】:
string myString = "20";
int num = Convert.ToInt32(myString) + 2;
myString = num.toString();
【讨论】: