排序时会发生一些意外的结果,该怎么办? [英] Occour some unexpected result when sorting,Whtat to do?
本文介绍了排序时会发生一些意外的结果,该怎么办?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
var fileEntries = from f in Directory.GetFiles(Application.StartupPath + "/TrainedFaces/", "*.bmp", SearchOption.AllDirectories) let fi = new FileInfo(f) orderby fi.Name select fi.FullName;
当我先将Face10,Face11放到Face10之后再取一个face1,这就是问题所在.
这是我想要的输出
There is some thing wrong When i put Face10,Face11 first it take face1 after it take Face10 so this is the problem
This is the output I want
[0] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFace/1\ 1.bmp"
[1] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/2\ 2.bmp"
[2] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/3\ 3.bmp"
[3] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/4\ 4.bmp"
[4] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/4\ 9.bmp"
[5] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/4\ 10.bmp"
但这给了
But it''s give
[0] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFace/1\ 1.bmp"
[5] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/4\ 10.bmp"
[1] = "N:\FaceRecProOV - Copy (2)\FaceRecProOV\bin\Debug/TrainedFaces/2\ 2.bmp"
代码中有什么问题????
What is wrong in the Code???
推荐答案
您需要实现自定义排序-字符串"TEXT1"的默认排序顺序晚于"TEXT10" ,"TEXT11","TEXT1"等.我建议最简单的方法是解析您的姓名,并在所有基于单个数字的姓名上插入前导"0".令人讨厌-但是没有简单的方法来AFAIK.
You need to implement a custom sort - a string "TEXT1" is later in the default sort order than "TEXT10", "TEXT11", "TEXT1 " and so on. I would suggest the easiest way is to parse your names, and insert the leading "0" on all single digit based names. Nasty - but there is no easy way AFAIK.
这篇关于排序时会发生一些意外的结果,该怎么办?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文