2015-07-21 46 views
1

我想写一个小程序,它会按字母顺序给我第一个文件夹的名称。测试它,我给它具有这些子文件夹的文件夹:列举的目录奇怪的顺序

赛季4 季节5 季节6 季节7 赛季8 季节9 赛季10 赛季11

这是我希望我的程序返回的顺序。但是,当我运行下面的代码:

string x = ""; 
foreach (string dir in Directory.EnumerateDirectories(root)) 
{ 
     x += dir + Environment.NewLine; 
} 
MessageBox.Show(x); 

的输出是下面的:

赛季10 赛季11 季节4 季节5 季节6 季节7 赛季8 第9季

如何让我的程序从4开始到11? 在此先感谢,伊利亚

+1

您需要使用自然排序顺序获取并排序目录名称。看到我最近的答案在这里:http://stackoverflow.com/a/31538443/106159 –

回答

1

您的返回数据是排序!
1在4之前,所以算法正确执行。如果你想在没有更大定制的情况下获得理想的结果,你应该重命名你的文件夹'season 04'等等。