SortVersion osztály

Megjegyzés:

Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.

Rendezés és sztringek összehasonlítása a .NET-keretrendszerben

A .NET-keretrendszer 4-es verzióján keresztül a .NET-keretrendszer minden verziója tartalmazott olyan táblázatokat, amelyek rendezési súlyokat és adatokat tartalmaztak a sztring normalizálásához, és amelyek a Unicode egy adott verzióján alapulnak. A .NET-keretrendszer 4.5-ös és újabb verzióiban a táblák jelenléte az operációs rendszertől függ:

  • Windows 7 és korábbi verziókban a táblák továbbra is használhatók a sztringek összehasonlítására és sorrendjére.
  • Windows 8 rendszeren a .NET-keretrendszer sztring-összehasonlítási és rendezési műveleteket delegál az operációs rendszerre.

Ezért a sztringek összehasonlításának eredménye nem csak a .NET-keretrendszer verziójától, hanem az operációs rendszer verziójától is függhet, ahogy az alábbi táblázat is mutatja. Vegye figyelembe, hogy a támogatott Unicode-verziók listája csak a karakterek összehasonlítására és rendezésére vonatkozik; nem vonatkozik a Unicode-karakterek kategória szerinti besorolására.

.NET-keretrendszer verziója Operációs rendszer Unicode-verzió
4 Minden operációs rendszer Unicode 5.0
4.5-ös és újabb verziók Windows 7 Unicode 5.0
4.5-ös és újabb verziók Windows 8 és újabb verziók Unicode 6.0

Windows 8 rendszeren, mivel a karakterlánc-összehasonlításban és -rendezésben használt Unicode-verzió az operációs rendszer verziójától függ, a sztringek összehasonlítása még a .NET-keretrendszer egy adott verzióján futó alkalmazások esetében is eltérő lehet.

Rendezés és sztringek összehasonlítása a .NET Core-ban

A .NET (Core) minden verziója a mögöttes operációs rendszerre támaszkodik a sztring-összehasonlítások végrehajtásakor. Ezért a sztringek összehasonlításának eredményei vagy a sztringek rendezésének sorrendje attól függ, hogy az operációs rendszer melyik Unicode-verziót használja az összehasonlítás során. Linux, macOS és Windows 10 és újabb verziókon a Unicode-kódtárakhoz készült International Components biztosítja az összehasonlítási és rendezési API-k implementálását.

A SortVersion osztály használata

Az SortVersion osztály információt nyújt a .NET által a sztringek összehasonlításához és sorrendjéhez használt Unicode-verzióról. Lehetővé teszi a fejlesztők számára, hogy olyan alkalmazásokat írjanak, amelyek képesek észlelni és sikeresen kezelni az alkalmazás sztringjeinek összehasonlítására és rendezésére használt Unicode-verzió változásait.

Az objektumokat kétféleképpen lehet példányosítani SortVersion :

  • SortVersion konstruktor meghívásával, amely egy verziószám és rendezési azonosító alapján hoz létre egy új SortVersion objektumot. Ez a konstruktor akkor hasznos, ha egy SortVersion objektumot mentett adatokból állít vissza.
  • A CompareInfo.Version tulajdonság értékének beolvasásával. Ez a tulajdonság a .NET-implementáció által használt Unicode-verzióról nyújt információt, amelyen az alkalmazás fut.

Az SortVersion osztálynak két tulajdonsága van, FullVersion és SortId, amelyek a Unicode-verziót és a sztring-összehasonlításhoz használt megfelelő kultúrát jelölik. A FullVersion tulajdonság egy tetszőleges numerikus érték, amely a karakterlánc-összehasonlításhoz használt Unicode-verziót tükrözi, a SortId tulajdonság pedig egy tetszőleges Guid érték, amely tükrözi azt a kultúrát, amelynek konvencióit sztringek összehasonlítására használják. A két tulajdonság értékei csak akkor fontosak, ha két SortVersion objektumot hasonlít össze a metódus, az EqualsEquality operátor vagy az Inequality operátor használatával.

Ön általában egy SortVersion objektumot használ a kultúraérzékeny, rendezett karakterlánc adat, például indexek vagy maguk a literális karakterláncok mentéséhez vagy visszakereséséhez. Ehhez a következő lépések szükségesek:

  1. A rendezett sztringadatok mentésekor a FullVersion és a SortId tulajdonságértékek is mentésre kerülnek.

  2. A konstruktor SortVersion meghívásával újra létrehozhatja a rendezéshez használt SortVersion objektumot, amikor a rendezett sztringadatokat lekéri.

  3. Ezt az újonnan létrehozott objektumot SortVersion összehasonlítjuk egy SortVersion olyan objektummal, amely tükrözi azt a kultúrát, amelynek konvencióit a sztringadatok rendelésére használják.

  4. Ha a két SortVersion objektum nem egyenlő, a sztringadatokat újra kell rendezni.