对数据源组合框进行排序?

时间:2012-05-31 21:10:08

标签: .net vb.net

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

我填充组合框的编码是

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

2 个答案:

答案 0 :(得分: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 by我在文件夹名称前加上八个0个字符,然后将最后八个字符传递给排序。这应该足够用于“99999999”的文件夹,如果你的“路径”中有混合名称,则不会进行测试

答案 1 :(得分:2)

当然

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

还可以使用提供静态方法的IO.Directory。它将目录名称返回为字符串而不是DirectoryInfo类。当你必须在同一目录上执行多个操作时,DirectoryInfo会更好。

另外,我没有看到With - 声明在这里做了什么。