131 votes

Impression de tout le contenu d'un tableau en C#

J'essaye d'imprimer le contenu d'un tableau après avoir invoqué certaines méthodes qui le modifient, en Java j'utilise :

System.out.print(Arrays.toString(alg.id));

Comment puis-je faire cela en C# ?

2voto

Eric J. Points 73338

En C#, vous pouvez parcourir le tableau en boucle en imprimant chaque élément. Notez que System.Object définit une méthode ToString(). Tout type donné qui dérive de System.Object() peut surcharger cette méthode.

Renvoie une chaîne de caractères qui représente l'objet courant.

http://msdn.microsoft.com/en-us/library/system.object.tostring.aspx

Par défaut, le nom complet du type de l'objet sera imprimé, bien que de nombreux types intégrés surpassent ce défaut pour imprimer un résultat plus significatif. Vous pouvez surcharger ToString() dans vos propres objets pour fournir une sortie significative.

foreach (var item in myArray)
{
    Console.WriteLine(item.ToString()); // Assumes a console application
}

Si vous aviez votre propre classe Foo, vous pourriez surcharger ToString() comme suit :

public class Foo
{
    public override string ToString()
    {
        return "This is a formatted specific for the class Foo.";
    }
}

2voto

Johnny Points 2817

À partir de C# 6.0 quand $ - L'interpolation des chaînes de caractères a été introduite, il y a encore un moyen :

var array = new[] { "A", "B", "C" };
Console.WriteLine($"{string.Join(", ", array)}");

//output
A, B, C

La concaténation peut être archivée à l'aide de la fonction System.Linq , convertir le string[] à char[] et l'imprimer comme un string :

var array = new[] { "A", "B", "C" };
Console.WriteLine($"{new String(array.SelectMany(_ => _).ToArray())}");

//output
ABC

0voto

Matthew Watson Points 30804

Si vous voulez être mignon, vous pouvez écrire une méthode d'extension qui écrit un IEnumerable<object> à la console. Cela fonctionnera avec des énumérables de n'importe quel type, car IEnumerable<T> est covariant sur T :

using System;
using System.Collections.Generic;

namespace Demo
{
    internal static class Program
    {
        private static void Main(string[] args)
        {
            string[] array  = new []{"One", "Two", "Three", "Four"};
            array.Print();

            Console.WriteLine();

            object[] objArray = new object[] {"One", 2, 3.3, TimeSpan.FromDays(4), '5', 6.6f, 7.7m};
            objArray.Print();
        }
    }

    public static class MyEnumerableExt
    {
        public static void Print(this IEnumerable<object> @this)
        {
            foreach (var obj in @this)
                Console.WriteLine(obj);
        }
    }
}

(Je ne pense pas que vous utilisiez ceci autrement que dans le code de test).

0voto

Tomasz Gandor Points 426

J'ai upvoted la réponse de la méthode d'extension par Matthew Watson, mais si vous migrez/visitez en venant de Python, vous pouvez trouver une telle méthode utile :

class Utils
{
    static void dump<T>(IEnumerable<T> list, string glue="\n")
    {
        Console.WriteLine(string.Join(glue, list.Select(x => x.ToString())));
    }
}

-> ceci imprimera n'importe quelle collection en utilisant le séparateur fourni. C'est assez limité (collections imbriquées ?).

Pour un script (c'est-à-dire une application console C# qui ne contient que Program.cs, et la plupart des choses se passent dans le fichier Program.Main ) - cela peut être très bien.

0voto

Snehal Thakkar Points 9

C'est la façon la plus simple d'imprimer la chaîne de caractères en utilisant un tableau !!!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace arraypracticeforstring
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] arr = new string[3] { "Snehal", "Janki", "Thakkar" };

            foreach (string item in arr)
            {
                Console.WriteLine(item.ToString());
            }
            Console.ReadLine();
        }
    }
}

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