¿Hay algún soporte de C# incorporado para hacer una clasificación por índice?¿Hay compatibilidad con C# para una ordenación basada en índice?
Más detalles:
Tengo varios juegos de datos almacenados en listas genéricas individuales de doble. Estas listas siempre tienen la misma longitud y contienen elementos de datos correspondientes, pero estas listas aparecen y desaparecen dinámicamente, por lo que no puedo simplemente almacenar los elementos de datos correspondientes en una clase o estructura de forma limpia. (También estoy lidiando con algunos problemas heredados).
Necesito poder ordenar estas llaves desde cualquiera de los conjuntos de datos.
Mi idea de la mejor manera de hacer esto es agregar un nivel de direccionamiento indirecto, y usar una clasificación basada en índice. Tales géneros han estado en uso durante años.
rápida definición de índice basado especie :
marca "índice", una matriz de enteros consecutivos la misma longitud que las listas, entonces el algoritmo de ordenación ordena la lista de números enteros de manera que anylist[index[N]]
da el número de ítems de anylist en orden ordenado Las listas en sí nunca se vuelven a ordenar.
¿Hay algún soporte C# incorporado para hacer una clasificación de índice? No he podido encontrarlo ... todo lo que he encontrado reordena la colección en sí. Creo que el apoyo existe, pero aún no he buscado en el lugar correcto.
Estoy usando C# .NET 3.5, en Windows.
¡Guau! Esto es increíble. Hace exactamente lo que necesitaba en una línea. Supongo que esto debe estar utilizando Linq. No lo he estudiado y no sé cómo funciona ... supongo que necesito estudiar un poco. ¡Gracias! –
No, no hay LINQ, pero hay una expresión lambda que se usa comúnmente con LINQ. – Guffa
Y si su matriz no es comparable, es solo una línea más: Comparador comparer = Comparer .Default; Array.Sort (index, (a, b) => comparer.Compare (matriz [a], matriz [b])); –