2016-04-02 13 views
-2

Ich möchte ein leeres Array zu deklarieren, die Eingabe vom Benutzer nimmt und dann die Länge des Arrays finden. Ich habe leere Array deklariert, aber nicht wissen, wie Sie die Eingabe von Benutzer nehmen. HierFinden Sie die Größe der unbekannten Größe Array

+1

Sie müssen [bearbeiten] (http://stackoverflow.com/posts/36368337/edit) Ihren Beitrag hinzufügen, was Sie als getan haben wir können Ihren Bildschirm nicht sehen. –

+1

Ein leeres Array kann keine Eingaben machen und kann auch keine Länge größer als 0 haben. Erweitern Sie Ihre Frage, zeigen Sie uns Code, vielleicht können wir Ihnen helfen. – Corey

+1

Arrays haben eine feste Größe - Sie können bei Bedarf mehr Speicher zuweisen, aber es ist einfacher, eine "Liste " zu verwenden, die dynamisch wachsen kann (wenn Sie jedoch ein Array im Hintergrund neu zuweisen). In diesem Fall gibt Ihnen die Eigenschaft "Count" die Anzahl der Elemente in der Sammlung. –

Antwort

0

ist ein Beispiel für genau das, was Sie gefragt: https://dotnetfiddle.net/1RSPzs

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     var index = 0; 
     var myArray = new string[] {}; 
     var isEmptyText = false; 
     do 
     { 
      Console.Write("Give me some input or press enter to quit: "); 
      var result = Console.ReadLine(); 
      isEmptyText = string.IsNullOrWhiteSpace(result); 
      if (!isEmptyText) 
      { 
       if (myArray.Length <= index) 
       { 
        Array.Resize(ref myArray, index+1); 
       } 

       myArray[index++] = result; 
      } 
     } while (!isEmptyText); 

     Console.WriteLine(myArray.Length); 
     Console.WriteLine(string.Join(", ", myArray)); 
    } 
} 

Während dieser Code funktioniert, ist es erneut Dimensionierung des Array ständig das ein kostspieliges Verfahren ist. Ich würde empfehlen, eine angemessene Menge an Gegenständen zu geben und sie nur bei Bedarf neu zu sortieren. Wie folgt aus:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     var index = 0; 
     var myArray = new string[25]; 
     var isEmptyText = false; 
     do 
     { 
      Console.Write("Give me some input or press enter to quit: "); 
      var result = Console.ReadLine(); 
      isEmptyText = string.IsNullOrWhiteSpace(result); 
      if (!isEmptyText) 
      { 
       if (myArray.Length <= index) 
       { 
        Array.Resize(ref myArray, myArray.Length + 10); 
       } 

       myArray[index++] = result; 
      } 
     } while (!isEmptyText); 

     Console.WriteLine(myArray.Length); 
     for (var i=0; i < index; i++) 
     { 
      Console.Write((i==0 ? "" : ", ") + myArray[i]); 
     } 
    } 
} 

Natürlich ist das Beste, was zu tun ist moderne Datenstrukturen wie verknüpfte Listen oder Vektoren zu verwenden, aber manchmal bekommen wir diese Aufgaben in der Schule und müssen es herausfinden. Schauen Sie sich die generischen Sammlungen für die einfachsten Datenstrukturen an, mit denen Sie in C# arbeiten können: http://www.csharp-station.com/Tutorial/CSharp/Lesson20

+0

Danke komma8.komma1, es hat für mich funktioniert. – Bushra

+0

Sie sind möglicherweise neu im Stack-Überlauf, also versuchen Sie in Zukunft, zu zeigen, was Sie versucht haben (den Code), und fügen Sie auch etwas mehr Details in Ihre Fragen ein. Nachdem Sie eine Antwort auf Ihre Frage (wie meinen Post) haben, markieren Sie die Antwort, damit die Leute nicht weiter Zeit damit verbringen, zu denken, dass sie noch offen und unbeantwortet ist. –