Hallo Leute,
habe eine kurze Frage. Es geht im die Aufgabe, dass 3 Zahlen eingegeben werden und dann nach Größe sortiert werden sollen. Habe mich im Internet schlau gemacht und viel zum Thema Array.Sort() gefunden.
Habe das Programm nun so geschrieben:
int[] zahlen;
zahlen = new int[3];
zahlen[0] = Convert.ToInt32(textBox1.Text);
zahlen[1] = Convert.ToInt32(textBox2.Text);
zahlen[2] = Convert.ToInt32(textBox3.Text);
Array.Sort(zahlen);
Nun soll die Auflistung in der TextBox4 erscheinen aber ich kann die Auflistung leider nicht in String konvertieren.
Ich wäre euch sehr dankbar, wenn ihr mit weiterhelfen könntet.
Liebe Grüße
Was is die Frage, wo kommst Du nicht weiter?
Doku von Sort() angeschaut? Die ist sehr ausführlich mit Code-Beispielen.
Wir werden natürlich nicht die Hausaufgaben machen und Dir einfach so den Quellcode programmieren.
Du sollst ja selbst überlegen und lernen 😃
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Danke für die schnelle Antwort. Wo finde ich diese Doku?
Die Frage ist:, mein Gedanke war folgender:
textBox4.Text = Convert.ToString(Array.Sort(zahlen));
dies gibt leider eine Fehlermeldung aus.
Laut Internet listet der Befehl "Array.Sort()" die Zahlen automatisch nach Größe auf, aber wie bekomme ich das Programm dazu, diese Auflistung in meiner TextBox4 anzuzeigen.
Wo finde ich diese Doku?
Über Google - oder einfach auf den Link klicken.
Prinzipiell verwendest Du es aber richtig. Das ToString auf ein Array aber macht natürlich kein Sinn.
Das sollte eher ein string.Join()
sein, wenn ich Dein Ziel richtig verstehe.
dies gibt leider eine Fehlermeldung aus.
Und welche? Wir können nicht hellsehen.
[Hinweis] Wie poste ich richtig? Punkt 5
Vermutlich liegts an der Fehlermeldung.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Darkblue94,
textBox4.Text = $"{zahlen[0]} {zahlen[1]} {zahlen[2]}";
Ist naiv umgesetzt, auch dein Code schon. Denn bedenke dass es einen Laufzeitfehler gibt, falls in textBox1.Text
keine Zahl, sondern sonst ein Text steht. Besser ist die Verwendung von int.TryParse
(cf. How to: Convert a String to a Number).
Wenn dann allgemein aus einem Array eine Zeichenfolge erstellt werden soll, kann bei wenigen fixen Array-Elemente wie oben gezeigt vorgegangen werden. Bei wenigen (~ weniger als 10) und nicht fixen Array-Elemente z.B. so
string result = "";
foreach (int i in array)
result += i.ToString() + " ";
Wegen [FAQ] Besonderheiten der String-Klasse (immutabler Referenztyp mit Wertsemantik) sollte bei meheren Array-Elemente z.B. der StringBuilder
verwendet werden.
var stringBuilder = new StringBuilder();
foreach (int i in array)
sb.Append(i).Append(" ");
string result = stringBuilder.ToString();
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Der Fehler ist:
"1-Argument: Kann nicht von "void" in "string" konvertiert werden."
LG
Hallo Darkblue94,
Array.Sort
ist eine void
-Methode, daher lässt sich das nicht kompilieren.
Siehe aber oben und lies dir den verlinkten Thread durch.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
.. weil Array.Sort() eben keine Rückgabe hat.
Doku Signatur:
public static void Sort (Array array);
Sort() sortiert das übergebene Array.
So stehts auch in der Beschreibung 😃
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Vielleicht sollte man erstmal ganz am Anfang anfangen:
[FAQ] Wie finde ich den Einstieg in C#?
[Tipp] Schau in die Doku! - Möglichkeiten der Informationsgewinnung
Weeks of programming can save you hours of planning
Du verstehst anscheind nicht so ganz wie das mit einem Array funktioniert. Ich hab mal dein Array mit den Indizes skizziert, damit du ein besseres verständnis bekommst.
Also ein Array ist eine Datensammlung eines bestimmten Datentyps, in deinem Fall vom Typ int. So das heisst du speichert mehrere ganz Zahlen in diesem Array. Dabei ist jede Zahl einem Index zu geordnet. Der erste Index eines Array ist die 0. Als Beispiel nehmen wir an, du gibst die folgenden Zahlen in deine Textboxen ein: |8 | 3 | 5|. Dann hat die 8 den Index 0 und die 5 hat den Index 2. Führst du nun einen sort aus, werden die Elemente neu geordnet und bekommen somit einen neunen Index. Das Array sieht dann so aus |3|5|8|. Das heisst bei Index 0 findest du jetzt das Element mit dem Wert 3. So jetzt möchtest du das komplette Array in einer weiteren Textbox ausgeben. Um dies zu realisieren, musst du das Array einmal "durchlaufen" und in jedem Lauf das Element auslesen. Das Array durchläufst du in einer Schleife bsp. For-Schleife
for (int i = 0; i < Array.Length; i++)
{
mystring + Array[i].toString() + " ";
}
nachdem die Schleife durch gearbeitet ist hast du mystring mit allen Elementen des Arrays. Ich hoffe ich konnte dir dadurch dir verständlich machen wie du mit Arrays arbeitest.
Wie auch meine Vorredner schon angemerkt haben musst du aber drauf aufpassen, das du keine Char in einen Integer parst, da sonst runtime error gibt. Aber das wurde schon erklärt, wie du das abfängst