Je reçois des fichiers dont les noms de fichier ont le format suivant :
File_1242161_08112019010101PM y File_1710485_08112019111721AM .
Je dois traiter ces fichiers dans l'ordre de l'heure de la date dans la troisième section de la chaîne. Je veux également être en mesure de traiter les fichiers qui ne suivent pas ce format particulier, par exemple :
Fichier_666840
Je veux trier la liste de la date la plus ancienne à la plus récente, et s'il n'y a pas de date, aller au bas de la liste en triant par le nom du fichier. J'ai essayé ce qui suit :
List<string> sorted = filenames.OrderByDescending(file => file.Name.Split('_').Count())
.ThenBy(file => file.Name.Split('_').LastOrDefault().ToList());
Cela me permet d'atteindre presque tout le but, mais le tri AM/PM n'est pas correct. Le nom de fichier avec 01:01:01 PM apparaîtra avant 11:17:21 AM pour des raisons évidentes. Quelle serait la façon la plus performante et la plus LINQ d'accomplir ce que je veux ?