J'ai une liste qui doit commander des voix:C# Regex chaînes de lettres de tri et numéro
R1-1
R1-11
R2-2
R1-2
ce doit être commandé:
R1-1
R1-2
R1-11
R2-2
Actuellement, je suis en utilisant la méthode C# Regex.Replace et ajouter un 0 avant l'occurrence de nombres uniques à la fin d'une chaîne avec quelque chose comme:
Regex.Replace(inString,@"([1-9]$)", @"0$2")
Je suis sur Il y a une meilleure façon de faire cela que je ne peux pas comprendre. Est-ce que quelqu'un a un bon moyen de trier les chaînes de lettres et de chiffres avec regex?
J'ai utilisé la méthode de Greg ci-dessous pour compléter ce et juste pensé que je devrais ajouter le code que je me sers pour être complet:
public static List<Rack> GetRacks(Guid aisleGUID)
{
log.Debug("Getting Racks with aisleId " + aisleGUID);
List<Rack> result = dataContext.Racks.Where(
r => r.aisleGUID == aisleGUID).ToList();
return result.OrderBy(r => r.rackName, new NaturalStringComparer()).ToList();
}
Grande réponse Greg! J'ai maintenant utilisé cette solution et ajouterai la méthode que j'utilise dans ma question pour l'exhaustivité. – bobwah
Ya, super greg! Dommage que le lien est mort –
Nouveau lien: http://gregbeech.com/blog/natural-sort-order-of-strings-and-files –