Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Metoda String.Compare ve výchozím nastavení provádí porovnání s ohledem na jazykovou verzi a rozlišování velkých a malých písmen. Tato metoda také obsahuje několik přetížení, která poskytují parametr culture pro zadání kultury, která se má použít, a parametr comparisonType pro určení pravidel porovnání, která se mají použít. Volání těchto metod místo výchozího přetížení funkcí odebere jakoukoli nejednoznačnost týkající se pravidel používaných v konkrétním volání metody a jasně ukazuje, zda je konkrétní porovnání citlivé k jazykové verzi nebo na ni necitlivé.
Poznámka:
Obě přetížení String.CompareTo metody provádí porovnání s rozlišováním jazykových verzí a rozlišováním velkých a malých písmen; Tuto metodu nelze použít k provádění porovnání bez rozlišení jazykové verze. Pro srozumitelnost kódu doporučujeme místo toho použít metodu String.Compare.
Pro operace citlivé na kulturní rozdíly zadejte hodnotu StringComparison.CurrentCulture nebo StringComparison.CurrentCultureIgnoreCase výčtu jako parametr comparisonType. Chcete-li provést porovnání citlivé na jazykovou verzi pomocí určené jazykové verze jiné než aktuální jazykové verze, zadejte objekt CultureInfo, který představuje tuto jazykovou verzi jako parametr culture.
Porovnání řetězců nerozlišující jazykovou verzi podporovanou metodou String.Compare jsou buď lingvistické (na základě konvencí řazení invariantní jazykové verze), nebo nejazyčné (na základě pořadové hodnoty znaků v řetězci). Většina porovnání řetězců, která neberou v úvahu kulturu, nejsou založená na jazyku. Pro tato porovnání zadejte hodnotu StringComparison.Ordinal nebo StringComparison.OrdinalIgnoreCase výčtu jako parametr comparisonType. Pokud je například rozhodnutí o zabezpečení (například uživatelské jméno nebo porovnání hesel) založeno na výsledku porovnání řetězců, měla by být operace nerozlišující jazykovou verzi a nejazyčná, aby se zajistilo, že výsledek nebude ovlivněn konvencemi konkrétní jazykové verze nebo jazyka.
Pokud chcete pracovat s lingvisticky relevantními řetězci z více jazykových verzí konzistentním způsobem, použijte porovnání jazykových řetězců bez rozlišení jazykové verze. Pokud například vaše aplikace zobrazuje slova, která používají více znakových sad v seznamu, můžete chtít zobrazit slova ve stejném pořadí nezávisle na aktuálním kulturním nastavení. Pro jazykové porovnání bez rozlišení jazyka definuje .NET neutrální jazykovou verzi, která je založená na lingvistických konvencích angličtiny. Chcete-li provést jazykové porovnání bez rozlišení jazykové verze, zadejte StringComparison.InvariantCulture nebo StringComparison.InvariantCultureIgnoreCase jako parametr comparisonType.
Následující příklad provádí dvě porovnání řetězců, která nejsou citlivá na kulturní nebo jazykové kontexty. První rozlišuje velká a malá písmena, ale druhý nikoliv.
using System;
public class CompareSample
{
public static void Main()
{
string string1 = "file";
string string2 = "FILE";
int compareResult = 0;
compareResult = String.Compare(string1, string2,
StringComparison.Ordinal);
Console.WriteLine($"{StringComparison.Ordinal} comparison of '{string1}' and '{string2}': {compareResult}");
compareResult = String.Compare(string1, string2,
StringComparison.OrdinalIgnoreCase);
Console.WriteLine($"{StringComparison.OrdinalIgnoreCase} comparison of '{string1}' and '{string2}': {compareResult}");
}
}
// The example displays the following output:
// Ordinal comparison of 'file' and 'FILE': 32
// OrdinalIgnoreCase comparison of 'file' and 'FILE': 0
Public Class CompareSample
Public Shared Sub Main()
Dim string1 As String = "file"
Dim string2 As String = "FILE"
Dim compareResult As Integer
compareResult = String.Compare(string1, string2, _
StringComparison.Ordinal)
Console.WriteLine("{0} comparison of '{1}' and '{2}': {3}",
StringComparison.Ordinal, string1, string2,
compareResult)
compareResult = String.Compare(string1, string2,
StringComparison.OrdinalIgnoreCase)
Console.WriteLine("{0} comparison of '{1}' and '{2}': {3}",
StringComparison.OrdinalIgnoreCase, string1, string2,
compareResult)
End Sub
End Class
' The example displays the following output:
' Ordinal comparison of 'file' and 'FILE': 32
' OrdinalIgnoreCase comparison of 'file' and 'FILE': 0
Můžete si stáhnout Tabulky třídicích vah, sadu textových souborů, které obsahují informace o váhách znaků používaných při řazení a porovnávání v operačních systémech Windows, a Výchozí tabulka vážení Unicode, tabulka vážení pro Linux a macOS.