显而易见的第一个想法是:
Public Function CheckStrings(ByVal input As String()) As Boolean
For Each s As String In input
If s.Length > 0 Then Return True
Next
Return False
End Function
我确信有一种比这更简单的方法。至少在代码方面更简单,如果不一定是性能。
最终结果:
嗯,你们做的很简单。做得好。 我想我仍然会使用扩展来使它在主代码中变得更简单。不过,最终的结果本身并不算太糟糕。
这是我的最终代码:
<Extension()> _
Public Function AnyNonZero(ByVal value As String()) As Boolean
If Not value.All(Function(x) String.IsNullOrEmpty(x)) Then Return True
Return False
End Function
答案 0 :(得分:3)
如果所有元素都是零长度,则可以使用此方法返回true。
Dim inputIsEmpty As Boolean = Array.TrueForAll(input, Function(x) x.Length = 0)
小心空引用。您可能想要使用它:
Dim inputIsEmpty As Boolean = Array.TrueForAll(input, Function(x) String.IsNullOrEmpty(x))
答案 1 :(得分:2)
这个怎么样?它使用名为input的字符串数组。
Array.TrueForAll(input, AddressOf ZeroLengthString)
Private Function ZeroLengthString(ByVal s As String) As Boolean
Return s.Length = 0
End Function
答案 2 :(得分:2)
这是一个类似于Array.TrueForAll的Linq函数:
Dim allEmpty = values.All(Function(x) x.Length = 0)
我觉得它比Array.TrueForAll更容易阅读。