2013-04-28 13 views

Odpowiedz

56

Możesz spróbować tego:

foreach(var item in yourArray) 
{ 
    Console.WriteLine(item.ToString()); 
} 

Również może chcesz spróbować czegoś takiego:

yourArray.ToList().ForEach(i => Console.WriteLine(i.ToString())); 

EDIT: Albo jak zasugerowano w komentarzach:

yourArray.ToList().ForEach(Console.WriteLine); 

EDYCJA:, aby uzyskać outp UT w jednej linii [na podstawie Twojego komentarza]:

Console.WriteLine("[{0}]", string.Join(", ", yourArray)); 
//output style: [8, 1, 8, 8, 4, 8, 6, 8, 8, 8] 
+2

Uwaga .ToString że nie jest konieczne, ponieważ WriteLine ma różne przeciążenia tym awaryjnej taki, który przyjmuje obiekt. –

+0

Użyłem alg.Id.ToList(). ForEach (Console.WriteLine), który działał dobrze, dziękuję. Czy można go wydrukować w następujący sposób: [8, 1, 8, 8, 4, 8, 6, 8, 8, 8] –

+0

@ ErenErsönmez Tak. Masz rację. ale co, jeśli element był niestandardową klasą z własnym mechanizmem "ToString". –

3

W języku C# można pętli tablicy drukowania każdego elementu. Zauważ, że System.Object definiuje metodę ToString(). Dowolny typ wywodzący się z System.Object() może to zmienić.

Powoduje zwrócenie ciągu reprezentującego bieżący obiekt.

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

Domyślnie pełna nazwa typu obiektu zostanie wydrukowany, choć wiele wbudowanych typów przesłonić tę wartość, tak aby drukować bardziej znaczący wynik. Możesz przesłonić ToString() we własnych obiektach, aby uzyskać znaczące wyniki.

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

Jeśli miał własne klasy Foo, można zastąpić toString() takich jak:

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

Istnieje wiele sposobów, aby to zrobić, pozostałe odpowiedzi są dobre, oto alternatywa:

Console.WriteLine(string.Join("\n", myArrayOfObjects)); 
1

Jeśli chcesz się urocze, możesz napisać metodę rozszerzenia, która zapisała do konsoli sekwencję IEnumerable<object>. Będzie to działać z enumerables dowolnego typu, ponieważ IEnumerable<T> jest kowariantna na T: (. Nie sądzę, żeby to wykorzystać inny niż w kodzie testowym)

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); 
     } 
    } 
} 

+0

Zajęło mi trochę czasu, aby w pełni zrozumieć, ale to jest bardzo przydatne, jestem przyzwyczajony do Pythona i umieszczam instrukcje drukowania, aby pomóc w debugowaniu, więc to jest dla mnie dobre. Dzięki –

3

Najprostszym jeden:

 Console.WriteLine("Array : "); 
     Console.WriteLine("[{0}]", string.Join(", ", <yourarray>)); 
0

I upvoted metody rozszerzenie odpowiedź Matthew Watson, ale jeśli migracji/wizyty pochodzących z Pythona, można znaleźć takie metody przydatne:

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

-> to spowoduje wydrukowanie każdej kolekcji przy użyciu dołączonego separatora. Jest dość ograniczony (zagnieżdżone kolekcje?).

Dla skryptu (tj. Aplikacja konsoli C#, która zawiera tylko program.cs, a większość rzeczy zdarza się w Program.Main) - to może być w porządku.

1

jest to najprostszy sposób, w jaki można wydrukować ciąg za pomocą tablicy!

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(); 
     } 
    } 
} 
Powiązane problemy