¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

SortVersion (Clase)

.NET Framework 4.6 and 4.5

Proporciona información sobre la versión de Unicode utilizada para comparar y ordenar cadenas.

System.Object
  System.Globalization.SortVersion

Espacio de nombres:  System.Globalization
Ensamblado:  mscorlib (en mscorlib.dll)

[SerializableAttribute]
public sealed class SortVersion : IEquatable<SortVersion>

El tipo SortVersion expone los siguientes miembros.

  NombreDescripción
Método públicoSortVersionCrea una nueva instancia de la clase SortVersion.
Arriba

  NombreDescripción
Propiedad públicaFullVersionObtiene el número de versión completo del objeto SortVersion.
Propiedad públicaSortIdObtiene un identificador único global para este objeto SortVersion.
Arriba

  NombreDescripción
Método públicoEquals(Object)Devuelve un valor que indica si esta instancia de SortVersion equivale a un objeto especificado. (Invalida a Object.Equals(Object)).
Método públicoEquals(SortVersion)Devuelve un valor que indica si esta instancia de SortVersion equivale a un objeto SortVersion especificado.
Método públicoGetHashCodeDevuelve un código hash para esta instancia. (Invalida a Object.GetHashCode()).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Operador públicoMiembro estáticoEqualityIndica si dos instancias de SortVersion son iguales.
Operador públicoMiembro estáticoInequalityIndica si dos instancias de SortVersion no son iguales.
Arriba

De .NET Framework 2.0 Service Pack 1 con .NET Framework 4, cada versión de.NET framework ha incluido tablas que contienen proporciones y ordenar los datos de la normalización de cadenas y basados en una determinada versión de Unicode. En .NET Framework 4.5, la presencia de estas tablas depende del sistema operativo:

  • En Windows 7 y las versiones anteriores del sistema operativo Windows, las tablas seguirán siendo utilizadas para comparar y ordenar las cadenas.

  • En Windows 8, .NET Framework delega comparación de cadenas y las operaciones el orden al sistema operativo.

Por consiguiente, el resultado de una comparación de cadenas puede depender no solo de la versión de .NET Framework, sino también de la versión del sistema operativo, como se muestra en la tabla siguiente.

Versión de .NET Framework

Sistema operativo

Versión Unicode

.NET Framework 4

Todos los sistemas operativos

Unicode 5.0

.NET Framework 4.5

Windows 7

Unicode 5.0

.NET Framework 4.5

Windows 8

Unicode 6.0

En Windows 8, porque la versión Unicode utilizado en la comparación de cadenas y ordenación depende de la versión del sistema operativo, los resultados de la comparación de cadenas pueden diferir incluso para las aplicaciones que se ejecutan en una versión concreta de .NET Framework.

La clase de SortVersion proporciona información sobre la versión Unicode utilizada por .NET Framework para la comparación de cadenas y el orden. Permite a los desarrolladores escribir aplicaciones que pueden detectar y controlar correctamente los cambios en la versión Unicode que se utiliza para comparar y ordenar las cadenas de una aplicación.

Puede crear instancias de un objeto de SortVersion de dos maneras:

  • Llamando al constructor de SortVersion , que crea instancias de un nuevo objeto de SortVersion basado en un identificador de número de versión y ordenación Este constructor es especialmente útil al crear un objeto de SortVersion de datos guardados.

  • Recuperación del valor de la propiedad CompareInfo.Version. Esta propiedad proporciona información sobre la versión Unicode utilizada por .NET Framework en la que se ejecuta la aplicación.

La clase de SortVersion tiene dos propiedades, FullVersion y SortId, que indican la versión Unicode y la referencia cultural específica utilizadas para la comparación de cadenas. La propiedad de FullVersion es un valor numérico arbitrario que refleja la versión Unicode utilizada para la comparación de cadenas, y la propiedad de SortId es Guid arbitrario que refleja la referencia cultural cuyas usan convenciones para la comparación de cadenas. Los valores de estas dos propiedades son importantes cuando se comparan dos objetos de SortVersion utilizando el método de Equals , operador de Equality , o el operador de Inequality .

Normalmente se utiliza un objeto de SortVersion al guardar o recuperando algún tipo de datos cultura- delicadas, pedidos de la cadena, como índices o las cadenas literales propios. Para ello, siga estos pasos:

  1. Cuando se guardan los datos orden de la cadena, los valores de propiedad de FullVersion y de SortId también se guardarán.

  2. Cuando se recupera datos orden de la cadena, puede volver a crear el objeto de SortVersion utilizado para ordenar las cadenas llamando al constructor de SortVersion .

  3. Este objeto recién creado instancias de SortVersion se compara con un objeto de SortVersion que refleje la referencia cultural cuyas usan convenciones para ordenar los datos de cadena.

  4. Si los dos objetos de SortVersion no son iguales, los datos de cadena deben tener reordenados.

El ejemplo lo ilustra.

El ejemplo siguiente contiene una parte del código fuente de una aplicación que utilice la clase de SortVersion para asegurarse de que los nombres nativos de los objetos de RegionInfo están ordenados correctamente para el sistema y la referencia cultural actual actuales. Usar objetos de BinaryReader y de BinaryWriter para almacenar y recuperar datos pedidos de un archivo de datos denominado Regions.dat en lugar de recuperar y ordenar datos cada vez que se ejecuta la aplicación. El ejemplo comprueba primero para determinar si existe el archivo de datos. Si no lo hace, crea los datos y establece la marca de reindex , que indica que los datos se deben recurrir y guardar de nuevo. Si no, recupera los datos y compara el objeto de SortVersion con el objeto de SortVersion para la referencia cultural actual del sistema actual. Si no son iguales, o si el indicador de reindex se ha establecido previamente, utiliza los datos de RegionInfo .


using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Text;

public class Example : IComparer
{
   private const string FILENAME = @".\Regions.dat";

   private struct Region
   {
      internal Region(string id, string name) 
      {
         this.Id = id;
         this.NativeName = name;
      }

      public string Id;
      public string NativeName;

      public override string ToString()
      {
         return this.NativeName;
      }
   }

   public static void Main()
   {
      bool reindex = false;

      Region[] regions;
      SortVersion ver = null;

      // If the data has not been saved, create it.
      if (! File.Exists(FILENAME)) { 
         regions = GenerateData();
         ver = CultureInfo.CurrentCulture.CompareInfo.Version;  
         reindex = true;
      }
      // Retrieve the existing data.
      else {
         regions = RestoreData(out ver);
      }

      // Determine whether the current ordering is valid; if not, reorder.
      if (reindex || ver != CultureInfo.CurrentCulture.CompareInfo.Version) { 
         Array.Sort(regions, new Example());      
         // Save newly reordered data.
         SaveData(regions);
      }

      // Continue with application...
   }

   private static Region[] GenerateData()
   {
      List<Region> regions = new List<Region>();

      foreach (var culture in CultureInfo.GetCultures(CultureTypes.AllCultures)) {
         if (culture.IsNeutralCulture | culture.Equals(CultureInfo.InvariantCulture))
            continue;

         RegionInfo region = new RegionInfo(culture.Name);
         regions.Add(new Region(region.Name, region.NativeName));
      }
      return regions.ToArray();
   }

   private static Region[] RestoreData(out SortVersion ver)
   {
      List<Region> regions = new List<Region>();

      BinaryReader rdr = new BinaryReader(File.Open(FILENAME, FileMode.Open));

      int sortVer = rdr.ReadInt32();
      Guid sortId = Guid.Parse(rdr.ReadString());
      ver = new SortVersion(sortVer, sortId);

      string id, name;
      while (rdr.PeekChar() != -1) {
         id = rdr.ReadString();
         name = rdr.ReadString();
         regions.Add(new Region(id, name));      
      }
      return regions.ToArray();
   }

   private static void SaveData(Region[] regions)
   {
      SortVersion ver = CultureInfo.CurrentCulture.CompareInfo.Version;

      BinaryWriter wrtr = new BinaryWriter(File.Open(FILENAME, FileMode.Create));
      wrtr.Write(ver.FullVersion); 
      wrtr.Write(ver.SortId.ToString()); 

      foreach (var region in regions) {
         wrtr.Write(region.Id);
         wrtr.Write(region.NativeName);
      }
      wrtr.Close();
   }

   public int Compare(object o1, object o2)
   {
        // Assume that all casts succeed.
        Region r1 = (Region) o1;
        Region r2 = (Region) o2;

        return String.Compare(r1.NativeName, r2.NativeName, 
                              StringComparison.CurrentCulture);        
   }
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft