2013-11-25 40 views

回答

4
string myString = "20"; 
myString = Convert.ToString(Convert.ToInt32(myString) + 2); 
+0

非常感謝您! ;) – Kvist

+0

很高興我能幫到你。正如您從其他評論/答案中可以看到的那樣,這可以通過多種方式完成,但主要的一點是,在進行算術加法之前,您需要確保兩個值都是整數(或其他數字數據類型)。如果你不這樣做,你會用加號運算符進行字符串連接。 – HaukurHaf

3

You'l需要解析字符串,做算術題:

string myString = "20"; 
myString = (int.Parse(myString) + 2).ToString(); 
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(); 
0

這是怎麼可以做到

string myString = "20"; 
int val = Convert.ToInt32(myString); 
myString = (val + 2).ToString; 
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(); 

當然這些都不推薦,除非沒有呃方式。發佈只是作爲一個好奇心:-)

0

不知道你的實際需要,但對於示例代碼,你可能會更好:

int myInt = 20; 

myInt = myInt + 2; 

//To do something: 
something.Text = myInt.ToString(); 
0
string myString = "20"; 
int num = Convert.ToInt32(myString) + 2; 
myString = num.toString(); 
相關問題