3

我在组合框中列出了文件夹,但我尝试按字母顺序对文件夹进行排序,然后按数字排序,反之亦然。

我填充组合框的编码是

With Combobox1.DataSource = 
    (From folder In New IO.DirectoryInfo("Path").GetDirectories
     Select (folder.Name)
    ).ToArray
End With

是否可以对组合框进行排序?谢谢

嗨,感谢你们的帮助,但它并没有真正解决我的问题,因为我有编号为 1、50、115、189 等的文件夹。

这些应显示为

1
50
115
189

但是它们显示为

1
115
189
50
4

2 回答 2

3

你离正确的语法只有一英寸

Combobox1.DataSource =  
    ( From folder In New DirectoryInfo("Path").GetDirectories()
      Order By folder.Name 
      Select folder.Name 
    ).ToArray() 

或者,如果您更喜欢使用完全限定的路径Name更改FullName

编辑:快速修复您的请求。

    Combobox1.DataSource =  
     ( From folder In New DirectoryInfo("path").GetDirectories()       
      Order By ("00000000" + folder.Name).SubString(folder.Name.Length, 8)        
      Select folder.Name
     ).ToArray()

order byI 在文件夹名称前面加上八个0字符,然后将最后八个字符传递给排序。这对于“99999999”以下的文件夹应该足够了,如果您的“路径”中有混合名称,则未经测试

于 2012-05-31T21:45:42.470 回答
2

当然

Combobox1.DataSource = 
    ( From folder In IO.Directory.GetDirectories("Path")
      Order By folder
      Select folder
    ).ToArray()

也使用IO.Directorywhich 提供静态方法。它以字符串而不是类的形式返回目录名称DirectoryInfoDirectoryInfo当您必须在同一目录上执行多个操作时会更好。

另外,我看不到With-statement 在这里做了什么。

于 2012-05-31T21:13:55.957 回答