se guardiamo le prestazioni la funzione di sotto è molto veloce
codice:
    Private Function ModificaStringa1(stringaIniziale As String) As String
        Dim sb As New StringBuilder(100)
        For i As Integer = 0 To stringaIniziale.Length - 1
            sb.Append(stringaIniziale.Chars(i))
            sb.Append(","c)
        Next
        If sb.Length > 0 Then sb.Remove(sb.Length - 1, 1)
        Return sb.ToString
    End Function

mentre quella suggerita da sspintux, anche se più lenta, mi pare molto interessante
codice:
    Private Function ModificaStringa3(stringaIniziale As String) As String
        Return String.Join(",", stringaIniziale.ToArray().AsEnumerable)
    End Function

il codice di sotto è il più lento (con una stringa di 26 caratteri in un ciclo molto lungo)
codice:
    Private Function ModificaStringa2(stringaIniziale As String) As String
        Dim sb As String = ""
        For i As Integer = 0 To stringaIniziale.Length - 1
            sb &= stringaIniziale.Chars(i) & ","c
        Next
        If sb.Length > 0 Then sb.Remove(sb.Length - 1, 1)
        Return sb
    End Function