Visual Basic字符串数组按字母顺序排序

时间:2014-01-20 14:26:10

标签: arrays vb.net string sorting

我正在尝试创建一个基本的控制台应用程序,允许用户输入3个名称,然后按字母顺序对其进行排序。这不起作用。

这是我的代码。

Dim names(2) As String
    Console.WriteLine("Name 1 ?")
    names(0) = Console.ReadLine
    Console.WriteLine("Name 2 ?")
    names(1) = Console.ReadLine
    Console.WriteLine("Name 3 ?")
    names(2) = Console.ReadLine
    Array.Sort(names)

    Console.WriteLine("Your names are:" & names)  

控制台没有打印代码。

2 个答案:

答案 0 :(得分:3)

使用LINQ:

Dim namesSorted() As String = names.OrderBy(Function(x) x).ToArray

使用此方法,您可以将排序条件更改为您想要的任何内容,即字长,升序/降序。要打印结果:

Console.WriteLine("Your names are:" & String.Join(","c, namesSorted))

另外,我建议你使用List,然后你不仅限于3个名字,而且你不需要知道你将提前处理多少个名字。 LINQ语法将是相同的。

答案 1 :(得分:1)

尝试这样的事情......

Dim names(2) As String
Console.WriteLine("Name 1 ?")
names(0) = Console.ReadLine
Console.WriteLine("Name 2 ?")
names(1) = Console.ReadLine
Console.WriteLine("Name 3 ?")
names(2) = Console.ReadLine
Array.Sort(names)
Console.WriteLine("Your names are:")
For x = 0 To 2
    Console.WriteLine(names(x)) 
Next x