# String.Equals 方法

## 多載

 判斷這個字串和指定的 String 物件是否具有相同的值。Determines whether this string and a specified String object have the same value. 參數可指定用於比較的文化特性、大小寫及排序規則。A parameter specifies the culture, case, and sort rules used in the comparison. 判斷兩個指定的 String 物件是否具有相同的值。Determines whether two specified String objects have the same value. 判斷兩個指定的 String 物件是否具有相同的值。Determines whether two specified String objects have the same value. 參數可指定用於比較的文化特性、大小寫及排序規則。A parameter specifies the culture, case, and sort rules used in the comparison. 判斷這個執行個體和指定的物件 (同時還必須是 String 物件) 是否具有相同的值。Determines whether this instance and a specified object, which must also be a String object, have the same value. 判斷這個執行個體和另一個指定的 String 物件是否具有相同的值。Determines whether this instance and another specified String object have the same value.

## Equals(String, StringComparison)

``````public:
bool Equals(System::String ^ value, StringComparison comparisonType);``````
``public bool Equals (string value, StringComparison comparisonType);``
``override this.Equals : string * StringComparison -> bool``
``Public Function Equals (value As String, comparisonType As StringComparison) As Boolean``

value
String

comparisonType
StringComparison

#### 例外狀況

`comparisonType` 不是 StringComparison 值。`comparisonType` is not a StringComparison value.

### 範例

``````using System;

class Sample
{
public static void Main()
{
// Define a string array with the following three "I" characters:
//      U+0069, U+0131, and U+0049.
string[] threeIs = { "i", "ı", "I" };
// Define Type object representing StringComparison type.
Type scType = typeof(StringComparison);

// Show the current culture (for culture-sensitive string comparisons).
Console.WriteLine("The current culture is {0}.\n",
System.Globalization.CultureInfo.CurrentCulture.Name);

// Perform comparisons using each StringComparison member.
foreach (string scName in Enum.GetNames(scType))
{
StringComparison sc = (StringComparison) Enum.Parse(scType, scName);
Console.WriteLine("Comparisons using {0}:", sc);
// Compare each character in character array.
for (int ctr = 0; ctr <= 1; ctr++)
{
string instanceChar = threeIs[ctr];
for (int innerCtr = ctr + 1; innerCtr <= threeIs.GetUpperBound(0); innerCtr++)
{
string otherChar = threeIs[innerCtr];
Console.WriteLine("{0} (U+{1}) = {2} (U+{3}): {4}",
instanceChar, Convert.ToInt16(Char.Parse(instanceChar)).ToString("X4"),
otherChar, Convert.ToInt16(Char.Parse(otherChar)).ToString("X4"),
instanceChar.Equals(otherChar, sc));
}
Console.WriteLine();
}
}
}
}
// The example displays the following output:
//       The current culture is en-US.
//
//       Comparisons using CurrentCulture:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): False
//
//       i (U+0131) = I (U+0049): False
//
//       Comparisons using CurrentCultureIgnoreCase:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): True
//
//       i (U+0131) = I (U+0049): False
//
//       Comparisons using InvariantCulture:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): False
//
//       i (U+0131) = I (U+0049): False
//
//       Comparisons using InvariantCultureIgnoreCase:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): True
//
//       i (U+0131) = I (U+0049): False
//
//       Comparisons using Ordinal:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): False
//
//       i (U+0131) = I (U+0049): False
//
//       Comparisons using OrdinalIgnoreCase:
//       i (U+0069) = i (U+0131): False
//       i (U+0069) = I (U+0049): True
//
//       i (U+0131) = I (U+0049): False
``````
``````Class Sample
Public Shared Sub Main()
' Define a string array with the following three "I" characters:
'      U+0069, U+0131, and U+0049.
Dim threeIs() As String = { "i", "ı", "I" }
' Define Type object representing StringComparison type.
Dim scType As Type = GetType(StringComparison)

' Show the current culture (for culture-sensitive string comparisons).
Console.WriteLine("The current culture is {0}." & vbCrLf, _
System.Globalization.CultureInfo.CurrentCulture.Name)

' Perform comparisons using each StringComparison member.
For Each scName As String In [Enum].GetNames(scType)
Dim sc As StringComparison = [Enum].Parse(scType, scName)
Console.WriteLine("Comparisons using {0}:", sc)
' Compare each character in character array.
For ctr As Integer = 0 To 1
Dim instanceChar As String = threeIs(ctr)
For innerCtr As Integer = ctr + 1 To threeIs.GetUpperBound(0)
Dim otherChar As STring = threeIs(innerCtr)
Console.WriteLine("{0} (U+{1}) = {2} (U+{3}): {4}", _
instanceChar, Convert.ToInt16(Char.Parse(instanceChar)).ToString("X4"), _
otherChar, Convert.ToInt16(Char.Parse(otherChar)).ToString("X4"), _
instanceChar.Equals(otherChar, sc))
Next
Console.WriteLine()
Next
Next
End Sub
End Class
' The example displays the following output:
'       The current culture is en-US.
'
'       Comparisons using CurrentCulture:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): False
'
'       i (U+0131) = I (U+0049): False
'
'       Comparisons using CurrentCultureIgnoreCase:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): True
'
'       i (U+0131) = I (U+0049): False
'
'       Comparisons using InvariantCulture:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): False
'
'       i (U+0131) = I (U+0049): False
'
'       Comparisons using InvariantCultureIgnoreCase:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): True
'
'       i (U+0131) = I (U+0049): False
'
'       Comparisons using Ordinal:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): False
'
'       i (U+0131) = I (U+0049): False
'
'       Comparisons using OrdinalIgnoreCase:
'       i (U+0069) = i (U+0131): False
'       i (U+0069) = I (U+0049): True
'
'       i (U+0131) = I (U+0049): False
``````

``````using System;
using System.Globalization;

public class Example
{
public static void Main()
{
String[] cultureNames = { "en-US", "se-SE" };
String[] strings1 = { "case",  "encyclopædia",
"encyclopædia", "Archæology" };
String[] strings2 = { "Case", "encyclopaedia",
"encyclopedia" , "ARCHÆOLOGY" };
StringComparison[] comparisons = (StringComparison[]) Enum.GetValues(typeof(StringComparison));

foreach (var cultureName in cultureNames) {
Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name);
for (int ctr = 0; ctr <= strings1.GetUpperBound(0); ctr++) {
foreach (var comparison in comparisons)
Console.WriteLine("   {0} = {1} ({2}): {3}", strings1[ctr],
strings2[ctr], comparison,
strings1[ctr].Equals(strings2[ctr], comparison));

Console.WriteLine();
}
Console.WriteLine();
}
}
}
// The example displays the following output:
//    Current Culture: en-US
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//       encyclopædia = encyclopaedia (CurrentCulture): True
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
//
//
//    Current Culture: se-SE
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//       encyclopædia = encyclopaedia (CurrentCulture): False
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
``````
``````Imports System.Globalization

Module Example
Public Sub Main()
Dim cultureNames() As String = { "en-US", "se-SE" }
Dim strings1() As String = { "case",  "encyclopædia",
"encyclopædia", "Archæology" }
Dim strings2() As String = { "Case", "encyclopaedia",
"encyclopedia" , "ARCHÆOLOGY" }
Dim comparisons() As StringComparison = CType([Enum].GetValues(GetType(StringComparison)),
StringComparison())

For Each cultureName In cultureNames
Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name)
For ctr As Integer = 0 To strings1.GetUpperBound(0)
For Each comparison In comparisons
Console.WriteLine("   {0} = {1} ({2}): {3}", strings1(ctr),
strings2(ctr), comparison,
strings1(ctr).Equals(strings2(ctr), comparison))
Next
Console.WriteLine()
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
'    Current Culture: en-US
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'
'       encyclopædia = encyclopaedia (CurrentCulture): True
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
'
'
'    Current Culture: se-SE
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'
'       encyclopædia = encyclopaedia (CurrentCulture): False
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
``````

### 備註

`comparisonType` 參數會指出比較是否應使用目前或不因文化特性而異、接受或忽略兩個要比較之字串的大小寫，或使用 word 或序數排序規則。The `comparisonType` parameter indicates whether the comparison should use the current or invariant culture, honor or ignore the case of the two strings being compared, or use word or ordinal sort rules.

## Equals(String, String)

``````public:
static bool Equals(System::String ^ a, System::String ^ b);``````
``public static bool Equals (string a, string b);``
``static member Equals : string * string -> bool``
``Public Shared Function Equals (a As String, b As String) As Boolean``

a
String

b
String

### 範例

``````// Sample for String::Equals(Object)
//            String::Equals(String)
//            String::Equals(String, String)
using namespace System;
using namespace System::Text;
int main()
{
StringBuilder^ sb = gcnew StringBuilder( "abcd" );
String^ str1 = "abcd";
String^ str2 = nullptr;
Object^ o2 = nullptr;
Console::WriteLine();
Console::WriteLine( " *  The value of String str1 is '{0}'.", str1 );
Console::WriteLine( " *  The value of StringBuilder sb is '{0}'.", sb );
Console::WriteLine();
Console::WriteLine( "1a) String::Equals(Object). Object is a StringBuilder, not a String." );
Console::WriteLine( "    Is str1 equal to sb?: {0}", str1->Equals( sb ) );
Console::WriteLine();
Console::WriteLine( "1b) String::Equals(Object). Object is a String." );
str2 = sb->ToString();
o2 = str2;
Console::WriteLine( " *  The value of Object o2 is '{0}'.", o2 );
Console::WriteLine( "    Is str1 equal to o2?: {0}", str1->Equals( o2 ) );
Console::WriteLine();
Console::WriteLine( " 2) String::Equals(String)" );
Console::WriteLine( " *  The value of String str2 is '{0}'.", str2 );
Console::WriteLine( "    Is str1 equal to str2?: {0}", str1->Equals( str2 ) );
Console::WriteLine();
Console::WriteLine( " 3) String::Equals(String, String)" );
Console::WriteLine( "    Is str1 equal to str2?: {0}", String::Equals( str1, str2 ) );
}

/*
This example produces the following results:

*  The value of String str1 is 'abcd'.
*  The value of StringBuilder sb is 'abcd'.

1a) String::Equals(Object). Object is a StringBuilder, not a String.
Is str1 equal to sb?: False

1b) String::Equals(Object). Object is a String.
*  The value of Object o2 is 'abcd'.
Is str1 equal to o2?: True

2) String::Equals(String)
*  The value of String str2 is 'abcd'.
Is str1 equal to str2?: True

3) String::Equals(String, String)
Is str1 equal to str2?: True
*/
``````
``````// Sample for String.Equals(Object)
//            String.Equals(String)
//            String.Equals(String, String)
using System;
using System.Text;

class Sample {
public static void Main() {
StringBuilder sb = new StringBuilder("abcd");
String      str1 = "abcd";
String      str2 = null;
Object	o2   = null;

Console.WriteLine();
Console.WriteLine(" *  The value of String str1 is '{0}'.", str1);
Console.WriteLine(" *  The value of StringBuilder sb is '{0}'.", sb.ToString());

Console.WriteLine();
Console.WriteLine("1a) String.Equals(Object). Object is a StringBuilder, not a String.");
Console.WriteLine("    Is str1 equal to sb?: {0}", str1.Equals(sb));

Console.WriteLine();
Console.WriteLine("1b) String.Equals(Object). Object is a String.");
str2 = sb.ToString();
o2   = str2;
Console.WriteLine(" *  The value of Object o2 is '{0}'.", o2);
Console.WriteLine("    Is str1 equal to o2?: {0}", str1.Equals(o2));

Console.WriteLine();
Console.WriteLine(" 2) String.Equals(String)");
Console.WriteLine(" *  The value of String str2 is '{0}'.", str2);
Console.WriteLine("    Is str1 equal to str2?: {0}", str1.Equals(str2));

Console.WriteLine();
Console.WriteLine(" 3) String.Equals(String, String)");
Console.WriteLine("    Is str1 equal to str2?: {0}", String.Equals(str1, str2));
}
}
/*
This example produces the following results:

*  The value of String str1 is 'abcd'.
*  The value of StringBuilder sb is 'abcd'.

1a) String.Equals(Object). Object is a StringBuilder, not a String.
Is str1 equal to sb?: False

1b) String.Equals(Object). Object is a String.
*  The value of Object o2 is 'abcd'.
Is str1 equal to o2?: True

2) String.Equals(String)
*  The value of String str2 is 'abcd'.
Is str1 equal to str2?: True

3) String.Equals(String, String)
Is str1 equal to str2?: True
*/
``````
``````' Sample for String.Equals(Object)
'            String.Equals(String)
'            String.Equals(String, String)
Imports System.Text

Class Sample
Public Shared Sub Main()
Dim sb As New StringBuilder("abcd")
Dim str1 As [String] = "abcd"
Dim str2 As [String] = Nothing
Dim o2 As [Object] = Nothing

Console.WriteLine()
Console.WriteLine(" *  The value of String str1 is '{0}'.", str1)
Console.WriteLine(" *  The value of StringBuilder sb is '{0}'.", sb.ToString())

Console.WriteLine()
Console.WriteLine("1a) String.Equals(Object). Object is a StringBuilder, not a String.")
Console.WriteLine("    Is str1 equal to sb?: {0}", str1.Equals(sb))

Console.WriteLine()
Console.WriteLine("1b) String.Equals(Object). Object is a String.")
str2 = sb.ToString()
o2 = str2
Console.WriteLine(" *  The value of Object o2 is '{0}'.", o2)
Console.WriteLine("    Is str1 equal to o2?: {0}", str1.Equals(o2))

Console.WriteLine()
Console.WriteLine(" 2) String.Equals(String)")
Console.WriteLine(" *  The value of String str2 is '{0}'.", str2)
Console.WriteLine("    Is str1 equal to str2?: {0}", str1.Equals(str2))

Console.WriteLine()
Console.WriteLine(" 3) String.Equals(String, String)")
Console.WriteLine("    Is str1 equal to str2?: {0}", [String].Equals(str1, str2))
End Sub
End Class
'
'This example produces the following results:
'
' *  The value of String str1 is 'abcd'.
' *  The value of StringBuilder sb is 'abcd'.
'
'1a) String.Equals(Object). Object is a StringBuilder, not a String.
'    Is str1 equal to sb?: False
'
'1b) String.Equals(Object). Object is a String.
' *  The value of Object o2 is 'abcd'.
'    Is str1 equal to o2?: True
'
' 2) String.Equals(String)
' *  The value of String str2 is 'abcd'.
'    Is str1 equal to str2?: True
'
' 3) String.Equals(String, String)
'    Is str1 equal to str2?: True
'
``````

## Equals(String, String, StringComparison)

``````public:
static bool Equals(System::String ^ a, System::String ^ b, StringComparison comparisonType);``````
``public static bool Equals (string a, string b, StringComparison comparisonType);``
``static member Equals : string * string * StringComparison -> bool``
``Public Shared Function Equals (a As String, b As String, comparisonType As StringComparison) As Boolean``

a
String

b
String

comparisonType
StringComparison

#### 例外狀況

`comparisonType` 不是 StringComparison 值。`comparisonType` is not a StringComparison value.

### 範例

``````using System;
using System.Globalization;

public class Example
{
public static void Main()
{
String[] cultureNames = { "en-US", "se-SE" };
String[] strings1 = { "case",  "encyclopædia",
"encyclopædia", "Archæology" };
String[] strings2 = { "Case", "encyclopaedia",
"encyclopedia" , "ARCHÆOLOGY" };
StringComparison[] comparisons = (StringComparison[]) Enum.GetValues(typeof(StringComparison));

foreach (var cultureName in cultureNames) {
Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name);
for (int ctr = 0; ctr <= strings1.GetUpperBound(0); ctr++) {
foreach (var comparison in comparisons)
Console.WriteLine("   {0} = {1} ({2}): {3}", strings1[ctr],
strings2[ctr], comparison,
String.Equals(strings1[ctr], strings2[ctr], comparison));

Console.WriteLine();
}
Console.WriteLine();
}
}
}
// The example displays the following output:
//    Current Culture: en-US
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//       encyclopædia = encyclopaedia (CurrentCulture): True
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
//
//
//    Current Culture: se-SE
//       case = Case (CurrentCulture): False
//       case = Case (CurrentCultureIgnoreCase): True
//       case = Case (InvariantCulture): False
//       case = Case (InvariantCultureIgnoreCase): True
//       case = Case (Ordinal): False
//       case = Case (OrdinalIgnoreCase): True
//
//       encyclopædia = encyclopaedia (CurrentCulture): False
//       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopaedia (InvariantCulture): True
//       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
//       encyclopædia = encyclopaedia (Ordinal): False
//       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
//
//       encyclopædia = encyclopedia (CurrentCulture): False
//       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
//       encyclopædia = encyclopedia (InvariantCulture): False
//       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
//       encyclopædia = encyclopedia (Ordinal): False
//       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
//
//       Archæology = ARCHÆOLOGY (CurrentCulture): False
//       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (InvariantCulture): False
//       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
//       Archæology = ARCHÆOLOGY (Ordinal): False
//       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
``````
``````Imports System.Globalization

Module Example
Public Sub Main()
Dim cultureNames() As String = { "en-US", "se-SE" }
Dim strings1() As String = { "case",  "encyclopædia",
"encyclopædia", "Archæology" }
Dim strings2() As String = { "Case", "encyclopaedia",
"encyclopedia" , "ARCHÆOLOGY" }
Dim comparisons() As StringComparison = CType([Enum].GetValues(GetType(StringComparison)),
StringComparison())

For Each cultureName In cultureNames
Console.WriteLine("Current Culture: {0}", CultureInfo.CurrentCulture.Name)
For ctr As Integer = 0 To strings1.GetUpperBound(0)
For Each comparison In comparisons
Console.WriteLine("   {0} = {1} ({2}): {3}", strings1(ctr),
strings2(ctr), comparison,
String.Equals(strings1(ctr), strings2(ctr), comparison))
Next
Console.WriteLine()
Next
Console.WriteLine()
Next
End Sub
End Module
' The example displays the following output:
'    Current Culture: en-US
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'
'       encyclopædia = encyclopaedia (CurrentCulture): True
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
'
'
'    Current Culture: se-SE
'       case = Case (CurrentCulture): False
'       case = Case (CurrentCultureIgnoreCase): True
'       case = Case (InvariantCulture): False
'       case = Case (InvariantCultureIgnoreCase): True
'       case = Case (Ordinal): False
'       case = Case (OrdinalIgnoreCase): True
'
'       encyclopædia = encyclopaedia (CurrentCulture): False
'       encyclopædia = encyclopaedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopaedia (InvariantCulture): True
'       encyclopædia = encyclopaedia (InvariantCultureIgnoreCase): True
'       encyclopædia = encyclopaedia (Ordinal): False
'       encyclopædia = encyclopaedia (OrdinalIgnoreCase): False
'
'       encyclopædia = encyclopedia (CurrentCulture): False
'       encyclopædia = encyclopedia (CurrentCultureIgnoreCase): False
'       encyclopædia = encyclopedia (InvariantCulture): False
'       encyclopædia = encyclopedia (InvariantCultureIgnoreCase): False
'       encyclopædia = encyclopedia (Ordinal): False
'       encyclopædia = encyclopedia (OrdinalIgnoreCase): False
'
'       Archæology = ARCHÆOLOGY (CurrentCulture): False
'       Archæology = ARCHÆOLOGY (CurrentCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (InvariantCulture): False
'       Archæology = ARCHÆOLOGY (InvariantCultureIgnoreCase): True
'       Archæology = ARCHÆOLOGY (Ordinal): False
'       Archæology = ARCHÆOLOGY (OrdinalIgnoreCase): True
``````

### 備註

`comparisonType` 參數會指出比較是否應使用目前或不因文化特性而異、接受或忽略兩個要比較之字串的大小寫，或使用 word 或序數排序規則。The `comparisonType` parameter indicates whether the comparison should use the current or invariant culture, honor or ignore the case of the two strings being compared, or use word or ordinal sort rules.

## Equals(Object)

``````public:
override bool Equals(System::Object ^ obj);``````
``public override bool Equals (object obj);``
``override this.Equals : obj -> bool``
``Public Overrides Function Equals (obj As Object) As Boolean``

obj
Object

### 範例

``````// Sample for String::Equals(Object)
//            String::Equals(String)
//            String::Equals(String, String)
using namespace System;
using namespace System::Text;
int main()
{
StringBuilder^ sb = gcnew StringBuilder( "abcd" );
String^ str1 = "abcd";
String^ str2 = nullptr;
Object^ o2 = nullptr;
Console::WriteLine();
Console::WriteLine( " *  The value of String str1 is '{0}'.", str1 );
Console::WriteLine( " *  The value of StringBuilder sb is '{0}'.", sb );
Console::WriteLine();
Console::WriteLine( "1a) String::Equals(Object). Object is a StringBuilder, not a String." );
Console::WriteLine( "    Is str1 equal to sb?: {0}", str1->Equals( sb ) );
Console::WriteLine();
Console::WriteLine( "1b) String::Equals(Object). Object is a String." );
str2 = sb->ToString();
o2 = str2;
Console::WriteLine( " *  The value of Object o2 is '{0}'.", o2 );
Console::WriteLine( "    Is str1 equal to o2?: {0}", str1->Equals( o2 ) );
Console::WriteLine();
Console::WriteLine( " 2) String::Equals(String)" );
Console::WriteLine( " *  The value of String str2 is '{0}'.", str2 );
Console::WriteLine( "    Is str1 equal to str2?: {0}", str1->Equals( str2 ) );
Console::WriteLine();
Console::WriteLine( " 3) String::Equals(String, String)" );
Console::WriteLine( "    Is str1 equal to str2?: {0}", String::Equals( str1, str2 ) );
}

/*
This example produces the following results:

*  The value of String str1 is 'abcd'.
*  The value of StringBuilder sb is 'abcd'.

1a) String::Equals(Object). Object is a StringBuilder, not a String.
Is str1 equal to sb?: False

1b) String::Equals(Object). Object is a String.
*  The value of Object o2 is 'abcd'.
Is str1 equal to o2?: True

2) String::Equals(String)
*  The value of String str2 is 'abcd'.
Is str1 equal to str2?: True

3) String::Equals(String, String)
Is str1 equal to str2?: True
*/
``````
``````// Sample for String.Equals(Object)
//            String.Equals(String)
//            String.Equals(String, String)
using System;
using System.Text;

class Sample {
public static void Main() {
StringBuilder sb = new StringBuilder("abcd");
String      str1 = "abcd";
String      str2 = null;
Object	o2   = null;

Console.WriteLine();
Console.WriteLine(" *  The value of String str1 is '{0}'.", str1);
Console.WriteLine(" *  The value of StringBuilder sb is '{0}'.", sb.ToString());

Console.WriteLine();
Console.WriteLine("1a) String.Equals(Object). Object is a StringBuilder, not a String.");
Console.WriteLine("    Is str1 equal to sb?: {0}", str1.Equals(sb));

Console.WriteLine();
Console.WriteLine("1b) String.Equals(Object). Object is a String.");
str2 = sb.ToString();
o2   = str2;
Console.WriteLine(" *  The value of Object o2 is '{0}'.", o2);
Console.WriteLine("    Is str1 equal to o2?: {0}", str1.Equals(o2));

Console.WriteLine();
Console.WriteLine(" 2) String.Equals(String)");
Console.WriteLine(" *  The value of String str2 is '{0}'.", str2);
Console.WriteLine("    Is str1 equal to str2?: {0}", str1.Equals(str2));

Console.WriteLine();
Console.WriteLine(" 3) String.Equals(String, String)");
Console.WriteLine("    Is str1 equal to str2?: {0}", String.Equals(str1, str2));
}
}
/*
This example produces the following results:

*  The value of String str1 is 'abcd'.
*  The value of StringBuilder sb is 'abcd'.

1a) String.Equals(Object). Object is a StringBuilder, not a String.
Is str1 equal to sb?: False

1b) String.Equals(Object). Object is a String.
*  The value of Object o2 is 'abcd'.
Is str1 equal to o2?: True

2) String.Equals(String)
*  The value of String str2 is 'abcd'.
Is str1 equal to str2?: True

3) String.Equals(String, String)
Is str1 equal to str2?: True
*/
``````
``````' Sample for String.Equals(Object)
'            String.Equals(String)
'            String.Equals(String, String)
Imports System.Text

Class Sample
Public Shared Sub Main()
Dim sb As New StringBuilder("abcd")
Dim str1 As [String] = "abcd"
Dim str2 As [String] = Nothing
Dim o2 As [Object] = Nothing

Console.WriteLine()
Console.WriteLine(" *  The value of String str1 is '{0}'.", str1)
Console.WriteLine(" *  The value of StringBuilder sb is '{0}'.", sb.ToString())

Console.WriteLine()
Console.WriteLine("1a) String.Equals(Object). Object is a StringBuilder, not a String.")
Console.WriteLine("    Is str1 equal to sb?: {0}", str1.Equals(sb))

Console.WriteLine()
Console.WriteLine("1b) String.Equals(Object). Object is a String.")
str2 = sb.ToString()
o2 = str2
Console.WriteLine(" *  The value of Object o2 is '{0}'.", o2)
Console.WriteLine("    Is str1 equal to o2?: {0}", str1.Equals(o2))

Console.WriteLine()
Console.WriteLine(" 2) String.Equals(String)")
Console.WriteLine(" *  The value of String str2 is '{0}'.", str2)
Console.WriteLine("    Is str1 equal to str2?: {0}", str1.Equals(str2))

Console.WriteLine()
Console.WriteLine(" 3) String.Equals(String, String)")
Console.WriteLine("    Is str1 equal to str2?: {0}", [String].Equals(str1, str2))
End Sub
End Class
'
'This example produces the following results:
'
' *  The value of String str1 is 'abcd'.
' *  The value of StringBuilder sb is 'abcd'.
'
'1a) String.Equals(Object). Object is a StringBuilder, not a String.
'    Is str1 equal to sb?: False
'
'1b) String.Equals(Object). Object is a String.
' *  The value of Object o2 is 'abcd'.
'    Is str1 equal to o2?: True
'
' 2) String.Equals(String)
' *  The value of String str2 is 'abcd'.
'    Is str1 equal to str2?: True
'
' 3) String.Equals(String, String)
'    Is str1 equal to str2?: True
'
``````

## Equals(String)

``````public:
bool Equals(System::String ^ value);``````
``public bool Equals (string value);``
``override this.Equals : string -> bool``
``Public Function Equals (value As String) As Boolean``

value
String

### 範例

``````using System;

public class Example
{
public static void Main()
{
Console.OutputEncoding = System.Text.Encoding.UTF8;
string word = "File";
string[] others = { word.ToLower(), word, word.ToUpper(), "Fıle" };
foreach (string other in others)
{
if (word.Equals(other))
Console.WriteLine("{0} = {1}", word, other);
else
Console.WriteLine("{0} {1} {2}", word, '\u2260', other);
}
}
}
// The example displays the following output:
//       File ≠ file
//       File = File
//       File ≠ FILE
//       File ≠ Fıle
``````
``````Module Example
Public Sub Main()
Console.OutputEncoding = System.Text.Encoding.UTF8

Dim word As String = "File"
Dim others() As String = { word.ToLower(), word, word.ToUpper(), _
"Fıle" }
For Each other As String In others
If word.Equals(other) Then
Console.WriteLine("{0} = {1}", word, other)
Else
Console.WriteLine("{0} {1} {2}", word, ChrW(&H2260), other)
End If
Next
End Sub
End Module
' The example displays the following output:
'       File ≠ file
'       File = File
'       File ≠ FILE
'       File ≠ Fıle
``````