我有兩個字符串。如何比較C#
string a="50";
string b="60";
現在我想相對於它們的值comapre串a和b的值,即在這裏B> A .. 什麼是實現這一目標的最佳方式是什麼?
我有兩個字符串。如何比較C#
string a="50";
string b="60";
現在我想相對於它們的值comapre串a和b的值,即在這裏B> A .. 什麼是實現這一目標的最佳方式是什麼?
你需要將它們轉換爲整數能夠將它們數字比較,所以:
string a = "50";
string b = "60";
bool isBGreaterThanA = Convert.ToInt32(b) > Convert.ToInt32(a);
最好的方法是將字符串轉換爲整數並比較它們。
誤解了這個問題,並提出了string.Compare和was wrong。
如何寫一個小擴展到您的字符串,這樣就可以隨時尋求它的int值節省您解析或在不同的地點代碼」
public static class stringExtensions
{
public static int IntValue(this string s)
{
int res = 0;
if (int.TryParse(s, out res))
return res;
return int.MaxValue;
}
}
你一遍又一遍地把它轉換可以像這樣使用它
Console.WriteLine (b.IntValue() > a.IntValue()? "b > a" : "a >= b");
我做了一個小例子來比較兩個字符串的值。如果它們可以轉換爲數字,那麼它會比較它們的數字值。否則,它會按字母順序進行比較。
private bool GreaterThan(string firstString, string secondString)
{
int firstNumber;
int secondNumber;
if (int.TryParse(firstString, out firstNumber) && int.TryParse(secondString, out secondNumber))
{
return firstNumber > secondNumber;
}
else
{
// Greater than 0 means the instance follows the value
return firstString.CompareTo(secondString) > 0;
}
}
您也可以將其實現爲字符串擴展方法。
是的,可以是擴展方法。 – Wondering 2010-02-24 11:31:56
我應該去4 convert或tryparse – Wondering 2010-02-24 10:30:23
@Wondering:這取決於如果字符串不是真正的整數,是否要拋出異常。 – 2010-02-24 10:31:18
@Wondering:如果您的數據已經過驗證,則無需使用TryParse。 – leppie 2010-02-24 10:31:27