文字列を比較するために' ==
' 演算子とメソッドを使用する際にグローバリゼーションの問題はありますか? 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 に答える