排序时会发生一些意外的结果,该怎么办? [英] Occour some unexpected result when sorting,Whtat to do?

查看:124
本文介绍了排序时会发生一些意外的结果,该怎么办?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆