CompareInfo.Compare Method (String, Int32, String, Int32)
Assembly: mscorlib (in mscorlib.dll)
public int Compare ( String string1, int offset1, String string2, int offset2 )
public function Compare ( string1 : String, offset1 : int, string2 : String, offset2 : int ) : int
Parameters
- string1
The first string to compare.
- offset1
The zero-based index of the character in string1 at which to start comparing.
- string2
The second string to compare.
- offset2
The zero-based index of the character in string2 at which to start comparing.
Return Value
| Value | Condition |
|---|---|
| zero | The two strings are equal. |
| less than zero | The specified section of string1 is less than the specified section of string2. |
| greater than zero | The specified section of string1 is greater than the specified section of string2. |
If a security decision depends on a string comparison or a case-change operation, use the InvariantCulture to ensure that the behavior will be consistent regardless of the culture settings of the system.
The following code example compares portions of two strings using the different CompareInfo instances: a CompareInfo instance associated with the "Spanish - Spain" culture with international sort, a CompareInfo instance associated with the "Spanish - Spain" culture with traditional sort, and a CompareInfo instance associated with the InvariantCulture.
using namespace System; using namespace System::Globalization; int main() { // Defines the strings to compare. String^ myStr1 = "calle"; String^ myStr2 = "calor"; // Uses GetCompareInfo to create the CompareInfo that // uses the S"es-ES" culture with international sort. CompareInfo^ myCompIntl = CompareInfo::GetCompareInfo( "es-ES" ); // Uses GetCompareInfo to create the CompareInfo that // uses the S"es-ES" culture with traditional sort. CompareInfo^ myCompTrad = CompareInfo::GetCompareInfo( 0x040A ); // Uses the CompareInfo property of the InvariantCulture. CompareInfo^ myCompInva = CultureInfo::InvariantCulture->CompareInfo; // Compares two strings using myCompIntl. Console::WriteLine( "Comparing \"{0}\" and \"{1}\"", myStr1->Substring( 2 ), myStr2->Substring( 2 ) ); Console::WriteLine( " With myCompIntl::Compare: {0}", myCompIntl->Compare( myStr1, 2, myStr2, 2 ) ); Console::WriteLine( " With myCompTrad::Compare: {0}", myCompTrad->Compare( myStr1, 2, myStr2, 2 ) ); Console::WriteLine( " With myCompInva::Compare: {0}", myCompInva->Compare( myStr1, 2, myStr2, 2 ) ); } /* This code produces the following output. Comparing "lle" and "lor" With myCompIntl::Compare: -1 With myCompTrad::Compare: 1 With myCompInva::Compare: -1 */
import System.* ;
import System.Globalization.* ;
public class SamplesCompareInfo
{
public static void main(String[] args)
{
// Defines the strings to compare.
String myStr1 = "calle";
String myStr2 = "calor";
// Uses GetCompareInfo to create the CompareInfo that uses the
// "es-ES" culture with international sort.
CompareInfo myCompIntl = CompareInfo.GetCompareInfo("es-ES");
// Uses GetCompareInfo to create the CompareInfo that uses the
// "es-ES" culture with traditional sort.
CompareInfo myCompTrad = CompareInfo.GetCompareInfo(0x40A);
// Uses the CompareInfo property of the InvariantCulture.
CompareInfo myCompInva =
CultureInfo.get_InvariantCulture().get_CompareInfo();
// Compares two strings using myCompIntl.
Console.WriteLine("Comparing \"{0}\" and \"{1}\"",
myStr1.Substring(2), myStr2.Substring(2));
Console.WriteLine(" With myCompIntl.Compare: {0}",
System.Convert.ToString(myCompIntl.Compare(myStr1, 2, myStr2, 2)));
Console.WriteLine(" With myCompTrad.Compare: {0}",
System.Convert.ToString(myCompTrad.Compare(myStr1, 2, myStr2, 2)));
Console.WriteLine(" With myCompInva.Compare: {0}",
System.Convert.ToString(myCompInva.Compare(myStr1, 2, myStr2, 2)));
} //main
} //SamplesCompareInfo
/*
This code produces the following output.
Comparing "lle" and "lor"
With myCompIntl.Compare: -1
With myCompTrad.Compare: 1
With myCompInva.Compare: -1
*/
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
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.