Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
41
Task/Comma-quibbling/Visual-Basic-.NET/comma-quibbling.vb
Normal file
41
Task/Comma-quibbling/Visual-Basic-.NET/comma-quibbling.vb
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
Option Explicit On
|
||||
Option Infer On
|
||||
Option Strict On
|
||||
|
||||
Module Program
|
||||
Function FormatEnumerable(source As IEnumerable(Of String)) As String
|
||||
Dim res As New Text.StringBuilder("{")
|
||||
|
||||
Using en = source.GetEnumerator()
|
||||
Dim moreThanOne As Boolean = False
|
||||
Dim nxt = If(en.MoveNext(), en.Current, String.Empty)
|
||||
|
||||
Do While en.MoveNext()
|
||||
If moreThanOne Then res.Append(", ")
|
||||
moreThanOne = True
|
||||
|
||||
res.Append(nxt)
|
||||
nxt = en.Current
|
||||
Loop
|
||||
|
||||
Dim lastItem = If(moreThanOne, " and ", "") & nxt
|
||||
Return res.ToString() & lastItem & "}"
|
||||
End Using
|
||||
End Function
|
||||
|
||||
Function FormatArray(source As String()) As String
|
||||
Select Case source.Length
|
||||
Case 0 : Return "{}"
|
||||
Case 1 : Return "{" & source(0) & "}"
|
||||
Case Else : Return "{" & String.Join(", ", source.Take(source.Length - 1)) & " and " & source(source.Length - 1) & "}"
|
||||
End Select
|
||||
End Function
|
||||
|
||||
Sub Main()
|
||||
Dim cases As String()() = {Array.Empty(Of String), New String() {"ABC"}, New String() {"ABC", "DEF"}, New String() {"ABC", "DEF", "G", "H"}}
|
||||
For Each c In cases
|
||||
Console.WriteLine(FormatArray(c))
|
||||
Console.WriteLine(FormatEnumerable(c))
|
||||
Next
|
||||
End Sub
|
||||
End Module
|
||||
Loading…
Add table
Add a link
Reference in a new issue