确定一维字符串数组是否只包含零长度字符串的最简单方法是什么?

时间:2011-07-28 05:50:32

标签: vb.net arrays string

显而易见的第一个想法是:

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

3 个答案:

答案 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更容易阅读。