首页 > 解决方案 > 在数字范围内查找第一个和最后一个数字

问题描述

想象一下从 -133 到 +71 的数字范围。

我想找到除以 20 的范围内的第一个和最后一个数字:在这种情况下,它将是 -120 和 +60。

我可以编写一个 For 循环来测试每个值并存储所需的值:

Dim resultFirst, resultLast As Integer
Dim FirstFound As Boolean = False
For a As Integer = -133 To 71
    If a Mod 20 = 0 Then
        If FirstFound = False Then
            resultFirst = a
            FirstFound = True
        End If
        resultLast = a
    End If
Next

但我怀疑有一个更简单的公式。

标签: vb.netmathmod

解决方案


您可以使用Enumerable.Range()LINQ- methodsWhereMinMax

Dim resultFirst As Integer
Dim resultLast As Integer
Dim min As Integer = -133
Dim max As Integer = 71
Dim div As Integer = 20

resultFirst = Enumerable.Range(min, max - min + 1).Where(Function(x) x Mod div = 0).Min()
resultLast = Enumerable.Range(min, max - min + 1).Where(Function(x) x Mod div = 0).Max()

推荐阅读