我正在创建输出排序功能。用户需要能够即时更改订单(它用于订购我们的订单拣货员的拣配清单)。我已经创建了一个Windows窗体,但我需要对它进行一些验证。验证本身很简单......数字必须按顺序排列,不能重复。如果他们重复,那么SQL报告就会爆炸......我也想验证不跳过任何值,但这并不是必需的。
有更好的方法:
if NumericUpDown1.value = NumericUpDown2.value then
error goes here
end if
if NumericUpDown1.value = NumericUpDown3.value then
error goes here
end if
if NumericUpDown1.value = NumericUpDown4.value then
error goes here
end if ...
有一个很大的列表,这将是数千行代码。我知道必须有一个简单的解决方案。它没有来找我,而且我被困在它上面几天了。 (是的,我知道我可能已经完成了它)
答案 0 :(得分:1)
就像Serg所说的那样,将值放入数组并使用Linq按值进行分组。然后找到任何重复。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim numericList = New Decimal() {
NumericUpDown1.Value,
NumericUpDown2.Value,
NumericUpDown3.Value,
NumericUpDown4.Value,
NumericUpDown5.Value
}
Dim duplicatesExist = numericList _
.GroupBy(Function(n) n) _
.Any(Function(g) g.Count() > 1)
If duplicatesExist Then
MessageBox.Show("Duplicates exist")
Else
MessageBox.Show("No Duplicates")
End If
End Sub