2 votes

Puis-je lire un tableau en une seule ligne de code ?

Supposons que j'ai un tableau int[] arr = {1,2,3,4}

Je veux le convertir en une chaîne de caractères. Le résultat que je veux obtenir est le suivant chaîne a = "1,2,3,4" ;

Je peux donc avoir quelque chose comme "string a = arr...." pour le faire, au lieu d'écrire une boucle for ?

Remerciements

8voto

tvanfosson Points 268301

Depuis .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() );

2voto

Michael Shimmins Points 12740

Vous pouvez utiliser String.Join :

int[] arr = new [] { 4, 5, 6, 7 };
string joined = String.Join(",", arr);

Voir http://msdn.microsoft.com/en-us/library/57a79xd0.aspx pour plus d'informations.

1voto

THX-1138 Points 7129
string result = string.Join(", ", arr.Select(item => item.ToString()).ToArray());

1voto

WOPR Points 2374

Si vous ne pouvez pas utiliser .net 4 (je ne le peux pas encore car nos clients ne le déploient pas), vous pouvez utiliser une méthode d'extension. Cela fonctionnera alors pour tous IEnumerable<T>'s avec des surcharges .ToString() correctement implémentées. Vous pouvez également choisir le type de séparateur que vous souhaitez.

Une fois que vous avez les éléments ci-dessous, il vous suffit de 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();
        }
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X