文字列を比較するために' ==' 演算子とメソッドを使用する際にグローバリゼーションの問題はありますか? string.Equals()はいの場合、これを回避するための解決策は何ですか?
2 に答える
5
ではString.Equals、使用できますStringComparison.InvariantCultureIgnoreCaseまたはStringComparison.InvariantCultureでは、==それはできません。
あなたは見るべきです:トルコ語のİ問題となぜあなたが気にする必要があるのか
同じ記事のコード スニペット:
using System;
using System.Globalization;
using System.Threading;
internal class Program
{
private static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");
const string input = "interesting";
bool comparison = input.ToUpper() == "INTERESTING";
Console.WriteLine("These things are equal: " + comparison);
Console.ReadLine();
}
}
上記は、演算子falseを使用した等しい比較の a を返します==
上記のコードで次の行を試すことができます
bool Comparison2 = input.Equals("INTERESTING",
StringComparison.InvariantCultureIgnoreCase);
そして結果はtrue
于 2012-11-07T06:13:54.053 に答える
2
==演算子とオーバーロードの.Equals(string)両方で.Equals(object)、序数に基づく文字列比較が使用され、カルチャに依存しません。
これは、.CompareTo文化に依存するものとは異なります。
于 2012-11-07T06:13:05.427 に答える