vb.net - 在数字范围内查找第一个和最后一个数字
问题描述
想象一下从 -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
但我怀疑有一个更简单的公式。
解决方案
您可以使用Enumerable.Range()
LINQ- methodsWhere
和Min
Max
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()
推荐阅读
- javascript - ReferenceError: io 未定义
- html - 带有背景颜色的标题菜单全宽
- datetime - Big Query 将所有时间戳转换为 UTC,有没有办法避免外部表出现这种情况?
- java - com.fasterxml.jackson.databind.JsonMappingException:找不到合适的构造函数,无法从对象值反序列化
- python - TensorFlow 连续拟合
- google-maps - 在颤振中实现实时跟踪的最简单方法是什么?
- teradata - Teradata NORMALIZE 选项
- python - 防止在 Altair Chart 中连接线
- html - Materialize CSS 下拉菜单在 Blazor(服务器端)中不起作用
- firebase - 单击按钮时,Vue js 不会获取路由参数。从 Firestore 更新用户