随机排列列表中的字符串

时间:2018-11-22 09:24:11

标签: vb.net winforms linq random

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。

1 个答案:

答案 0 :(得分:4)

问题是您的代码未对myList进行任何更改。 LINQ查询始终会生成一个新列表。您需要将ToList的结果分配回myList变量,即

myList = myList.OrderBy(Function(i) myRandom.Next).ToList()