CompareInfo クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class CompareInfo Implements IDeserializationCallback
[SerializableAttribute] [ComVisibleAttribute(true)] public class CompareInfo : IDeserializationCallback
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class CompareInfo : IDeserializationCallback
CultureInfo クラスには、このクラスのインスタンスである CompareInfo プロパティがあります。String.Compare は、CultureInfo.CompareInfo の情報を使用して、文字列を比較します。
ほとんどのクラスとは異なり、CompareInfo は、遅延バインディングでアクセスできるようにするため、パブリック コンストラクタではなく GetCompareInfo メソッドを用意しています。
あるカルチャの CompareInfo を作成するには、CultureInfo.CompareInfo プロパティを使用するか、GetCompareInfo メソッドを使用します。
無視される検索値IndexOf メソッドや LastIndexOf メソッドなどの比較演算では、検索対象の値が無視された場合に予期しない結果となる場合があります。検索値は、空の文字列 ("") が指定された場合や、比較オプションによりまたはコード ポイントが言語上の意味を持たないためにコード ポイントが演算において考慮されない文字または文字列が指定された場合に無視されます。たとえば、IndexOf メソッドの検索値が空の文字列の場合、戻り値は 0 となります。
CultureInfo オブジェクトに関連付けられている CompareInfo オブジェクトが文字列比較にどのような影響を与えるかを次のコード例に示します。
Imports System Imports System.Text Imports System.Globalization NotInheritable Public Class App Shared Sub Main(ByVal args() As String) Dim sign() As String = {"<", "=", ">"} ' The code below demonstrates how strings compare ' differently for different cultures. Dim s1 As String = "Coté" Dim s2 As String = "coté" Dim s3 As String = "côte" ' Set sort order of strings for French in France. Dim ci As CompareInfo = New CultureInfo("fr-FR").CompareInfo Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID) ' Display the result using fr-FR Compare of Coté = coté. Console.WriteLine("fr-FR Compare: {0} {2} {1}", _ s1, s2, sign((ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1))) ' Display the result using fr-FR Compare of coté > côte. Console.WriteLine("fr-FR Compare: {0} {2} {1}", _ s2, s3, sign((ci.Compare(s2, s3, CompareOptions.None) + 1))) ' Set sort order of strings for Japanese as spoken in Japan. ci = New CultureInfo("ja-JP").CompareInfo Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID) ' Display the result using ja-JP Compare of coté < côte. Console.WriteLine("ja-JP Compare: {0} {2} {1}", _ s2, s3, sign((ci.Compare(s2, s3) + 1))) End Sub 'Main End Class 'App ' This code produces the following output. ' ' The LCID for fr-FR is 1036. ' fr-FR Compare: Coté = coté ' fr-FR Compare: coté > côte ' The LCID for ja-JP is 1041. ' ja-JP Compare: coté < côte
using System; using System.Text; using System.Globalization; public sealed class App { static void Main(string[] args) { String[] sign = new String[] { "<", "=", ">" }; // The code below demonstrates how strings compare // differently for different cultures. String s1 = "Coté", s2 = "coté", s3 = "côte"; // Set sort order of strings for French in France. CompareInfo ci = new CultureInfo("fr-FR").CompareInfo; Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID); // Display the result using fr-FR Compare of Coté = coté. Console.WriteLine("fr-FR Compare: {0} {2} {1}", s1, s2, sign[ci.Compare(s1, s2, CompareOptions.IgnoreCase) + 1]); // Display the result using fr-FR Compare of coté > côte. Console.WriteLine("fr-FR Compare: {0} {2} {1}", s2, s3, sign[ci.Compare(s2, s3, CompareOptions.None) + 1]); // Set sort order of strings for Japanese as spoken in Japan. ci = new CultureInfo("ja-JP").CompareInfo; Console.WriteLine("The LCID for {0} is {1}.", ci.Name, ci.LCID); // Display the result using ja-JP Compare of coté < côte. Console.WriteLine("ja-JP Compare: {0} {2} {1}", s2, s3, sign[ci.Compare(s2, s3) + 1]); } } // This code produces the following output. // // The LCID for fr-FR is 1036. // fr-FR Compare: Coté = coté // fr-FR Compare: coté > côte // The LCID for ja-JP is 1041. // ja-JP Compare: coté < côte
using namespace System; using namespace System::Text; using namespace System::Globalization; int main() { array<String^>^ sign = gcnew array<String^> { "<", "=", ">" }; // The code below demonstrates how strings compare // differently for different cultures. String^ s1 = "Coté"; String^ s2 = "coté"; String^ s3 = "côte"; // Set sort order of strings for French in France. CompareInfo^ ci = (gcnew CultureInfo("fr-FR"))->CompareInfo; Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID); // Display the result using fr-FR Compare of Coté = coté. Console::WriteLine(L"fr-FR Compare: {0} {2} {1}", s1, s2, sign[ci->Compare(s1, s2, CompareOptions::IgnoreCase) + 1]); // Display the result using fr-FR Compare of coté > côte. Console::WriteLine(L"fr-FR Compare: {0} {2} {1}", s2, s3, sign[ci->Compare(s2, s3, CompareOptions::None) + 1]); // Set sort order of strings for Japanese as spoken in Japan. ci = (gcnew CultureInfo("ja-JP"))->CompareInfo; Console::WriteLine(L"The LCID for {0} is {1}.", ci->Name, ci->LCID); // Display the result using ja-JP Compare of coté < côte. Console::WriteLine("ja-JP Compare: {0} {2} {1}", s2, s3, sign[ci->Compare(s2, s3) + 1]); } // This code produces the following output. // // The LCID for fr-FR is 1036. // fr-FR Compare: Coté = coté // fr-FR Compare: coté > côte // The LCID for ja-JP is 1041. // ja-JP Compare: coté < côte
System.Globalization.CompareInfo
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
CompareInfo プロパティ
CompareInfo メソッド
パブリック メソッド
名前 | 説明 | |
---|---|---|
Compare | オーバーロードされます。 2 つの文字列を比較します。 | |
Equals | オーバーロードされます。 オーバーライドされます。 指定のオブジェクトが、現在のCompareInfo オブジェクトと等しいかどうかを判断します。 | |
GetCompareInfo | オーバーロードされます。 CompareInfo クラスの新しいインスタンスを初期化します。 | |
GetHashCode | オーバーライドされます。 現在の CompareInfo のハッシュ関数として機能し、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造に使用されます。 | |
GetSortKey | オーバーロードされます。 文字列の SortKey オブジェクトを取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) | |
IndexOf | オーバーロードされます。 文字列または部分文字列内にある値のうち、最初に出現する値の、0 から始まるインデックス番号を返します。 | |
IsPrefix | オーバーロードされます。 文字列が特定のプリフィックスで始まるかどうかを判断します。 | |
IsSortable | オーバーロードされます。 指定した Unicode 文字または文字列の並べ替えが可能かどうかを示します。 | |
IsSuffix | オーバーロードされます。 文字列が特定のサフィックスで終わるかどうかを判断します。 | |
LastIndexOf | オーバーロードされます。 文字列または部分文字列内にある値のうち、最後に出現する値の、0 から始まるインデックス番号を返します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) | |
ToString | オーバーライドされます。 現在の CompareInfo を表す文字列を返します。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
名前 | 説明 | |
---|---|---|
System.Runtime.Serialization.IDeserializationCallback.OnDeserialization | オブジェクト グラフ全体が逆シリアル化された時点で実行します。 |
CompareInfo メンバ
カルチャごとに異なる文字列比較行うための一連のメソッドを実装します。
CompareInfo データ型で公開されるメンバを以下の表に示します。
パブリック プロパティ
パブリック メソッド
名前 | 説明 | |
---|---|---|
Compare | オーバーロードされます。 2 つの文字列を比較します。 | |
Equals | オーバーロードされます。 オーバーライドされます。 指定のオブジェクトが、現在のCompareInfo オブジェクトと等しいかどうかを判断します。 | |
GetCompareInfo | オーバーロードされます。 CompareInfo クラスの新しいインスタンスを初期化します。 | |
GetHashCode | オーバーライドされます。 現在の CompareInfo のハッシュ関数として機能し、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造に使用されます。 | |
GetSortKey | オーバーロードされます。 文字列の SortKey オブジェクトを取得します。 | |
GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) | |
IndexOf | オーバーロードされます。 文字列または部分文字列内にある値のうち、最初に出現する値の、0 から始まるインデックス番号を返します。 | |
IsPrefix | オーバーロードされます。 文字列が特定のプリフィックスで始まるかどうかを判断します。 | |
IsSortable | オーバーロードされます。 指定した Unicode 文字または文字列の並べ替えが可能かどうかを示します。 | |
IsSuffix | オーバーロードされます。 文字列が特定のサフィックスで終わるかどうかを判断します。 | |
LastIndexOf | オーバーロードされます。 文字列または部分文字列内にある値のうち、最後に出現する値の、0 から始まるインデックス番号を返します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) | |
ToString | オーバーライドされます。 現在の CompareInfo を表す文字列を返します。 |
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
名前 | 説明 | |
---|---|---|
System.Runtime.Serialization.IDeserializationCallback.OnDeserialization | オブジェクト グラフ全体が逆シリアル化された時点で実行します。 |
- CompareInfoのページへのリンク