Public Function AddMulti(ByVal numbers As String) As Integer
Dim sum As Integer
Dim numcopy() As String
Dim StringSeperators() As String = {"\n", ","}
If numbers.Contains("//") Then
Dim delim As Char = numbers(2)
ReDim StringSeperators(1)
StringSeperators(0) = delim
numbers = numbers.Substring(5)
End If
numcopy = numbers.Split(StringSeperators, StringSplitOptions.None)
If numcopy = String.Empty Then
Return 0
End If
If numbers.Contains("-") Then
Dim message As String = "Negative values are invalid for Add function, found "
Dim negatives() As String
ReDim negatives(numbers.Length)
Dim y As Integer = 0
For x As Integer = 0 To numcopy.Length - 1 Step 1
If numcopy(x).First = "-" Then
negatives(y) = numcopy(x).ToString
message += negatives(y).ToString + ","
y += 1
End If
Next
MsgBox(message.Trim(","), MsgBoxStyle.Information, "message")
Throw New ArgumentException(message)
End If
If numcopy.Any((Function(x) String.IsNullOrEmpty(x))) Then
Throw New ArgumentException()
End If
For x As Integer = 0 To numcopy.Length - 1 Step 1
sum += numcopy(x)
Next
Return sum
End Function
' using lambda expressions (bobby's example)
Public Function AddLambda(ByVal numbers As String) As Integer
If String.IsNullOrEmpty(numbers) Then
Return 0
End If
Return numbers.Split(","c).[Select](Function(x) Integer.Parse(x)).Sum()
End Function