2017-02-17 3 views
0

Ich versuche, den Inhalt eines Arrays zu erhalten angezeigt, aber alles, was geschieht, ist diese AufforderungArray Trouble in C#

enter image description here

namespace ConsoleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] values = { "This", "That", "The Other Thing" }; 
      foreach (var item in values) 
      { 
       Console.Clear(); 
       Console.WriteLine(values); 
      } 

Was mache ich falsch?

+1

'Konsole.WriteLine (Element); ' –

Antwort

1

Zeit, was Sie tun, ist:

  1. ein neues Array erstellen.
  2. Speichern von String-Elementen im Array.
  3. Dann machen Sie 2 Dinge:
    • Löschen der Konsole.
    • Schreiben des Array-Objekts in die Konsole (nicht ihre Elemente).

Sie wiederholen Punkt 3 für die Anzahl von Malen gleich der Anzahl der Elemente im Array. Wenn Sie also 5 Elemente haben, löschen Sie einfach die Konsole und schreiben dann das Array-Objekt fünfmal auf die Konsole.

Eine bessere Möglichkeit wäre die folgende:

namespace ConsoleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] values = { "This", "That", "The Other Thing" }; 
      Console.Clear(); 
      foreach (var item in values) 
      { 
       Console.WriteLine(item); 
      } 

Dies würde die Konsole löschen und dann jedes Textelement in dem Array enthaltenen schreiben, in das Konsolenfenster, ein Element pro Zeile.

Es ist erwähnenswert, dass die foreach Schleife im Allgemeinen teurer Speicher ist, im Vergleich zu der for Schleife (see here für Details). Zu schreiben, dies eine for Schleife verwenden, können Sie wie folgt vor:

namespace ConsoleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      string[] values = { "This", "That", "The Other Thing" }; 
      Console.Clear(); 
      for (int i = 0; i < values.Length; i++) 
      { 
       Console.WriteLine(values[i]); 
      } 

Die ganze Zahl ‚i‘ bestimmt, welches Element gedruckt wird, und so mit jedem Zyklus durch die Schlaufe, wird das nächste Element an den gesendet werden Konsole.

+0

Hey JMadel, vielen Dank für Ihre gründliche Antwort! Ich schätze wirklich alle Informationen sowie den Link. Danke noch einmal – Justin

2

Im Moment drucken Sie das Array selbst, wenn Sie die Elemente im Array drucken möchten.

namespace ConsoleApp 
    { 
     class Program 
     { 
      static void Main(string[] args) 
      { 
       string[] values = { "This", "That", "The Other Thing" }; 
       foreach (var item in values) 
       { 
        Console.Clear(); 
        Console.WriteLine(item); 
       } 
+0

Idiot, ich bin ein Idiot ..... danke! – Justin

0
foreach (var item in values) 
     { 

      Console.WriteLine(item); 
     } 
4

Drucken item, nicht values:

// Clear once, not before each output 
Console.Clear(); 

// print item, not entire array 
foreach (var item in values) 
    Console.WriteLine(item); 

Im Fall, dass Sie die gesamte Array in einem Rutsch drucken, tun Sie es mit Hilfe von string.Join:

Console.Clear(); 
Console.Write(string.Join(Environment.NewLine, values));  
1

Kleine Hilfe zu graben tiefer auf sezieren, was wir tun:

object[] values = { "This", "That", "The Other Thing", 1, 2, 1.0f }; 
foreach (var item in values) 
{ 
    Console.WriteLine($"I am printing `{item}` from `{values}` which is of type `{item.GetType()}`"); 
} 

Der Ausgang:

enter image description here

+0

Danke, ich schätze die Hilfe – Justin