2010-09-09 11 views
2

Supposé que j'ai un tableau int [] arr = {1,2,3,4}Puis-je lire un tableau dans une ligne de code?

Je veux le convertir en une chaîne. Le résultat que je veux que ce soit comme cette chaîne a = "1,2,3,4"; Donc, est-ce que je peux avoir quelque chose "chaîne a = arr ...." pour le faire, au lieu d'écrire une boucle for ??

Merci

Répondre

1
string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray()); 
+0

Sauf que vous n'avez pas besoin de tout ce genre de choses au milieu. String.Join fonctionnera avec juste un tableau – Josh

+2

@Josh: si vous utilisez .NET 4.0. –

8

À partir de .NET 4, vous pouvez simplement faire:

var result = string.Join(",", arr); 

Dans les versions antérieures,

var result = string.Join(",", arr.Select(a => a.ToString()).ToArray()); 
1

Si vous ne pouvez pas utiliser .net 4 (je ne peux pas encore notre les clients ne le déploient pas), vous pouvez utiliser une méthode d'extension. Cela fonctionnera alors pour tous IEnumerable<T>'s avec des substitutions .ToString() correctement implémentées. Vous pouvez également choisir quel type de seperator vous voulez.

Une fois que vous avez le ci-dessous, vous pouvez juste faire string s = myenumerable.Seperated(",");

public static class EnumerableExtender 
    { 
     public static string Separated<T>(this IEnumerable<T> l, string separator) 
     { 
      var sb = new StringBuilder(); 
      var first = true; 
      foreach (var o in l) 
      { 
       if (first) first = false; else sb.Append(separator); 
       sb.Append(o.ToString()); 
      } 
      return sb.ToString(); 
     } 
    } 
+0

+1 - un exemple pour le programmeur pré .NET 4.0 qui ne veut pas simplement créer de nouvelles baies pour faire un appel d'API spécifique. –

Questions connexes