CompareOptions uppräkning

Anmärkning

Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.

Alternativen CompareOptions anger skiftlägeskänslighet eller nödvändighet för att ignorera typer av tecken.

.NET använder tre olika sorteringssätt: ordsortering, strängsortering och ordningstalssortering. Ordsortering utför en kulturkänslig jämförelse av strängar. Vissa icke-numeriska tecken kan ha särskilda vikter tilldelade till sig. Bindestrecket ("-") kan till exempel ha en mycket liten vikt tilldelad till det så att "coop" och "co-op" visas bredvid varandra i en sorterad lista. Strängsortering liknar ordsortering, förutom att det inte finns några specialfall. Därför kommer alla icke-numeriska symboler före alla alfanumeriska tecken. Ordningstalssortering jämför strängar baserat på Unicode-värdena för varje element i strängen. En nedladdningsbar uppsättning textfiler som innehåller information om de teckenvikter som används i sorterings- och jämförelseåtgärder för Windows-operativsystem finns i Sortera vikttabeller. Information om sorteringsvikttabellen för Linux och macOS finns i standardtabellen för Unicode-sorteringselement. Den specifika versionen av sorteringsvikttabellen i Linux och macOS beror på vilken version av International Components for Unicode-biblioteken som är installerade i systemet. Information om ICU-versioner och Unicode-versioner som de implementerar finns i Ladda ned ICU.

Värdet StringSort kan bara användas med CompareInfo.Compare och CompareInfo.GetSortKey. ArgumentException genereras om Värdet StringSort används med CompareInfo.IsPrefix, CompareInfo.IsSuffix, CompareInfo.IndexOfeller CompareInfo.LastIndexOf.

Anmärkning

När det är möjligt bör du använda strängjämförelsemetoder som accepterar ett CompareOptions värde för att ange vilken typ av jämförelse som förväntas. Som en allmän regel hanteras användarriktade jämförelser bäst genom att använda språkliga lösningar (med den aktuella kulturen), medan säkerhetsjämförelser bör definieras med Ordinal eller OrdinalIgnoreCase.

Kulturkänsliga sorter

Anmärkning

.NET Core körs endast på Linux- och macOS-system: Sorteringsbeteendet för C- och Posix-kulturerna är alltid skiftlägeskänsligt eftersom dessa kulturer inte använder den förväntade Unicode-sorteringsordningen. Vi rekommenderar att du använder en annan kultur än C eller Posix för att utföra kulturkänsliga, skiftlägesokänsliga sorteringsåtgärder.