我有下面的Vb代码,我想知道为什么它失败了。我这样做是C#,它工作正常。
Dim numbers = Enumerable.Range(1, 4).OrderBy(i >= ran.Next()).ToList()
答案 0 :(得分:4)
因为在VB.NET中这不是有效的语法,所以需要the ugly Function
keyword:
Dim numbers = Enumerable.Range(1, 4).OrderBy(Function(i) i >= ran.Next()).ToList()
在VB.NET中我几乎总是试图避免使用该关键字,这会伤害我的眼睛。所以你可以用这个:
Dim numbers = From n In Enumerable.Range(1, 4)
Order By n >= ran.Next()
Dim numList As List(Of Int32) = numbers.ToList()
但如果你想随机订购,这应该有效:
Dim numbers = From n In Enumerable.Range(1, 4)
Order By ran.Next()
Dim numList As List(Of Int32) = numbers.ToList()