Dim myRandom As New Random
Dim myList As New List(Of String)(New String() {"A", "B", "C"})
myList.OrderBy(Function(i) myRandom.Next).ToList()
For k As Integer = 0 To 2
MessageBox.Show(myList.Item(k))
Next
运行代码时,您会看到MessageBoxs显示 A,B,C 。
我希望消息框显示 B,C,A 或 C,B,A 或 A,C,B 或 A ,B,C 或 B,A,C 或 C,A,B 。
注意:必须使用Linq。
答案 0 :(得分:4)
问题是您的代码未对myList进行任何更改。 LINQ查询始终会生成一个新列表。您需要将ToList的结果分配回myList变量,即
myList = myList.OrderBy(Function(i) myRandom.Next).ToList()