¿Cómo se ordena una Lista alfanumérica por el valor en la cadena [0]?Lista de clasificación <String[]>
Respuesta
Trate
list.Sort((s, t) => String.Compare(s[0], t[0]));
Esto ordenará lexicográfico por el primer elemento de cada matriz en list
.
Dado que no sé exactamente lo que quiere decir con "alfanumérico", si necesita una cadena personalizada comparación de enrutamiento, usted debe hacer esto:
class MyStringComparer : IComparer<string> {
public int Compare(string s, string t) {
// details elided
}
}
y luego
var comparer = new MyStringComparer();
list.Sort((s, t) => comparer.Compare(s[0], t[0]));
Si las cadenas en la matriz pueden ser nulas, su solución podría ser más adecuada para string.Compare (s [0], t [0]) –
¿cómo resolvería esto el requisito alfanumérico? Sin un comparador personalizado, ¿no sería incorrecto para "50A" y "100A"? – BrokenGlass
@BrokenGlass: Tenga en cuenta que hice una observación sobre la comparación personalizada exactamente porque no sé a qué se refiere por "alfanuméricamente". – jason
toma un vistazo a este enlace here
tienen un muy buen ejemplo de la interfaz IComparer. puede usar esto, cree su propio Comparer y ejecute su lista a través de él.
Este es un ejemplo de código terriblemente simplista/seudo ... Realmente se extiende aquí ...
MyclassZeroIndexComparer : IComparable, IList(Of String[])
{
private List<String[]> listOfStringArrays;
//expose this as a public member somewhere...
private List<String[]> listofStringArrayZeroIndex;
//internally store a list of only the first item you want to index....
//implement your own, add,remove,clear
void Add(foo item)
{
listofStringArrays.Add(Item);
listofStringArrayZeroIndex.add(item[0]);
}
// continue implementing other methods in the same manner.
}
- 1. Clasificación Lista <String> en C#
- 2. Lista de clasificación <T> usando cadena sin Linq
- 3. Lista de clasificación <Tuple <int, int>> in situ
- 4. Clasificación de lista basada en otra lista
- 5. lista de clasificación en python
- 6. Clasificación Python - Una lista de objetos
- 7. Clasificación de archivos en una lista
- 8. Lista de clasificación C# basada en otra lista
- 9. Guava modo de clasificación ¿Lista según otra lista?
- 10. C# más rápido de clasificación de SortedList <>
- 11. java HashMap clasificación <String, Entero>. ¿Cómo ordenarlo?
- 12. Lista <Object> vs Lista <dynamic>
- 13. Lista <?> o Lista <Object>
- 14. Lista <Object> y lista <?>
- 15. Clasificación estable, es decir, clasificación mínimamente disruptiva
- 16. lista de clasificación entre mayúsculas y minúsculas usando operator.attrgetter
- 17. Convertir la lista <MyObject> al Diccionario <obj.string, Lista <obj.ID>>
- 18. Cómo lanzar ArrayList <> de la lista <>
- 19. Lista <T> Ordenar utiliza Comparer <T> en lugar de IEquatable, ¿Por qué?
- 20. Lista <? extiende MyType>
- 21. Comparar Lista <String[]>
- 22. Hibernate, Lista <String>
- 23. cuándo utilizar Colección <T> vs Lista <T>
- 24. ordenar una lista en Python usando el resultado de la clasificación de otra lista
- 25. Lista de fundición <x> a la lista <y>
- 26. Lista de serialización <T> que contiene la lista <T>
- 27. SqlDataReader Lista de rendimiento <string[]> o Lista <object[]>
- 28. C# Lista de fundición <ushort> a la lista <short>
- 29. Conversión de la lista <Integer> a la lista <String>
- 30. list.sort (clasificación personalizada ...)
@jball: No es el primer carácter. Cada elemento es una matriz de cadenas y está ordenando por el primer elemento de esas matrices. Imagine, por ejemplo, el índice de un libro. Cada línea podría ser una 'cadena []' donde el primer elemento indica la palabra que se indexa y los elementos restantes son los números de página. Aquí tendría sentido ordenar por el primer elemento. – jason
Estoy con @jball. –
@Jason, ah lo leyeron mal. Estoy en mi juego hoy ... – jball