StringComparer.Create Método

Definición

Sobrecargas

Create(CultureInfo, Boolean)

Crea un objeto StringComparer que compara cadenas según las reglas de la referencia cultural especificada.

Create(CultureInfo, CompareOptions)

Crea un objeto StringComparer que compara cadenas según las reglas de las opciones de referencia cultural y cadena especificadas.

Create(CultureInfo, Boolean)

Crea un objeto StringComparer que compara cadenas según las reglas de la referencia cultural especificada.

public static StringComparer Create (System.Globalization.CultureInfo culture, bool ignoreCase);

Parámetros

culture
CultureInfo

Referencia cultural cuyas reglas lingüísticas se utilizan para realizar una comparación de cadenas.

ignoreCase
Boolean

true para especificar que las operaciones de comparación no distinguen entre mayúsculas y minúsculas; false para especificar que las operaciones de comparación distinguen entre mayúsculas y minúsculas.

Devoluciones

StringComparer

Nuevo objeto StringComparer que realiza comparaciones de cadenas según las reglas de comparación utilizadas por el parámetro culture y la regla de distinción o no entre mayúsculas y minúsculas especificada por el parámetro ignoreCase.

Excepciones

culture es null.

Ejemplos

En el ejemplo de código siguiente se muestran las propiedades y el Create método de la StringComparer clase . En el ejemplo se muestra cómo diferentes StringComparer objetos ordenan tres versiones de la letra latina I.

// This example demonstrates members of the 
// System.StringComparer class.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;

class Sample 
{
    public static void Main() 
    {
        // Create a list of string.
        List<string> list = new List<string>();

        // Get the tr-TR (Turkish-Turkey) culture.
        CultureInfo turkish = new CultureInfo("tr-TR");

        // Get the culture that is associated with the current thread.
        CultureInfo thisCulture = Thread.CurrentThread.CurrentCulture;

        // Get the standard StringComparers.
        StringComparer invCmp =   StringComparer.InvariantCulture;
        StringComparer invICCmp = StringComparer.InvariantCultureIgnoreCase;
        StringComparer currCmp = StringComparer.CurrentCulture;
        StringComparer currICCmp = StringComparer.CurrentCultureIgnoreCase;
        StringComparer ordCmp = StringComparer.Ordinal;
        StringComparer ordICCmp = StringComparer.OrdinalIgnoreCase;

        // Create a StringComparer that uses the Turkish culture and ignores case.
        StringComparer turkICComp = StringComparer.Create(turkish, true);

        // Define three strings consisting of different versions of the letter I.
        // LATIN CAPITAL LETTER I (U+0049)
        string capitalLetterI = "I";  

        // LATIN SMALL LETTER I (U+0069)
        string smallLetterI   = "i";

        // LATIN SMALL LETTER DOTLESS I (U+0131)
        string smallLetterDotlessI = "\u0131";

        // Add the three strings to the list.
        list.Add(capitalLetterI);
        list.Add(smallLetterI);
        list.Add(smallLetterDotlessI);

        // Display the original list order.
        Display(list, "The original order of the list entries...");

        // Sort the list using the invariant culture.
        list.Sort(invCmp);
        Display(list, "Invariant culture...");
        list.Sort(invICCmp);
        Display(list, "Invariant culture, ignore case...");

        // Sort the list using the current culture.
        Console.WriteLine("The current culture is \"{0}\".", thisCulture.Name);
        list.Sort(currCmp);
        Display(list, "Current culture...");
        list.Sort(currICCmp);
        Display(list, "Current culture, ignore case...");

        // Sort the list using the ordinal value of the character code points.
        list.Sort(ordCmp);
        Display(list, "Ordinal...");
        list.Sort(ordICCmp);
        Display(list, "Ordinal, ignore case...");

        // Sort the list using the Turkish culture, which treats LATIN SMALL LETTER 
        // DOTLESS I differently than LATIN SMALL LETTER I.
        list.Sort(turkICComp);
        Display(list, "Turkish culture, ignore case...");
    }

    public static void Display(List<string> lst, string title)
    {
        Char c;
        int  codePoint;
        Console.WriteLine(title);
        foreach (string s in lst)
        {
            c = s[0];
            codePoint = Convert.ToInt32(c);
            Console.WriteLine("0x{0:x}", codePoint); 
        }
        Console.WriteLine();
    }
}
/*
This code example produces the following results:

The original order of the list entries...
0x49
0x69
0x131

Invariant culture...
0x69
0x49
0x131

Invariant culture, ignore case...
0x49
0x69
0x131

The current culture is "en-US".
Current culture...
0x69
0x49
0x131

Current culture, ignore case...
0x49
0x69
0x131

Ordinal...
0x49
0x69
0x131

Ordinal, ignore case...
0x69
0x49
0x131

Turkish culture, ignore case...
0x131
0x49
0x69

*/

Consulte también

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Create(CultureInfo, CompareOptions)

Crea un objeto StringComparer que compara cadenas según las reglas de las opciones de referencia cultural y cadena especificadas.

public static StringComparer Create (System.Globalization.CultureInfo culture, System.Globalization.CompareOptions options);

Parámetros

culture
CultureInfo

Referencia cultural cuyas reglas lingüísticas se utilizan para realizar una comparación de cadenas.

options
CompareOptions

Combinación bit a bit de los valores de CompareOptions.

Devoluciones

StringComparer

Nuevo objeto StringComparer que realiza comparaciones de cadenas según las reglas de comparación utilizadas por el parámetro culture y el parámetro options especificado.

Excepciones

culture es null.

options tiene marcas no válidas.

Se aplica a

.NET 7 y otras versiones
Producto Versiones
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Standard 2.1