vb.net - VB.net查找除0以外的最小数字
问题描述
我有五个值,其中一个或多个值可能为 0。至少有两个值大于 0。
什么是使用 VB.net 找到这些值的最小值并忽略 0 值的最简单和最干净的方法?
编辑:我这么远:
'get smalles value that is not 0
Dim heights As List(Of Double)
heights.Add(sectionHeight1)
heights.Add(sectionHeight2)
heights.Add(sectionHeight3)
heights.Add(sectionHeight4)
heights.Add(sectionHeight5)
For i = 0 To 4 Step 1
If heights(i) = 0 Then
heights.RemoveAt(i)
End If
Next
解决方案
这正是 LINQ 最好解决的问题:
Dim minValueIgnoring0 = heights.Where(Function(h) h <> 0).Min()
替代语法:
Dim minValueIgnoring0 = (From h in heights Where h <> 0).Min()
(请注意,您可能需要Imports System.Linq
在源文件的顶部添加。)
请注意,LINQ 也可以对数组进行操作,因此您甚至不需要列表:
Dim heights = {sectionHeight1, sectionHeight2, sectionHeight3, sectionHeight4, sectionHeight5}
Dim minValueIgnoring0 = heights.Where(Function(h) h <> 0).Min()
学到更多:
推荐阅读
- python-3.x - 在字符串中搜索字符
- dart - 在底部导航栏上的选项卡更改时禁用重建页面
- laravel-5 - Storage disk url with s3 giving me the wrong s3 url
- c - 如何从长字符串中扫描多个字符串并将其存储在 char *word[20] 中?
- android - 在android中循环并保留变量值
- android - 将数据从一个活动传递到另一个不工作
- java - 在java中用正则表达式拆分导致一个空元素
- interrupt - 什么是(中断)句柄?
- facebook-chatbot - Facebook bot 停止回复,除了卡片
- python - 我将如何在 PyQt5 中销毁和重新创建我的窗口?