2010-03-01 7 views

Répondre

8

Je ne sais pas pourquoi vous voudriez utiliser une instruction foreach au lieu d'une instruction String.Join. Vous pouvez simplement String.Join() la liste en utilisant un point-virgule comme caractère de jonction.

String.Join(";", emailList.ToArray()) 
+0

@NebuSoft - J'ai complètement oublié ... Je dois être vieux ... +1 pour vous ... Je retire ma réponse. –

+0

qui ne fonctionnerait pas. Le deuxième paramètre est un tableau de chaînes, pas une liste générique. –

+0

Je m'excuse, je n'ai pas utilisé VB depuis VB6. En C# vous pouvez prendre la liste générique à un tableau (emailList.ToArray()) ... Je suis sûr qu'il existe un équivalent via VB.NET – NebuSoft

0
Dim emailList As New StringBuilder() 

For Each (email As String In emails) 
    emailList.Append(String.Format("{0};", email)) 
Next 

Return emailList.ToString() 

Pardonnez-moi S'il y a des erreurs de syntaxe ... mon VB.NET est un peu rouillé et je n'ai pas de complier à portée de main.

+0

@ Dan - merci! –

2

Vous pouvez

Dim stringValue As String = String.Join(";", emailList.ToArray) 

Jetez un oeil à String.Join Method

2

Je ne voudrais pas utiliser en fait une boucle foreach pour cela. Voici ce que je ferais:

String.Join(";", emailList.ToArray()); 
1
 Dim emailList As New List(Of String) 
    emailList.Add("[email protected]") 
    emailList.Add("[email protected]") 
    emailList.Add("[email protected]") 

    Dim output As StringBuilder = New StringBuilder 
    For Each Email As String In emailList 
     output.Append(IIf(String.IsNullOrEmpty(output.ToString), "", ";") & Email) 
    Next