C# [F] Array Grundlagen mit Code+Pic

lxlox

Cadet 4th Year
Registriert
Nov. 2013
Beiträge
74
Bild: my array frage.jpg

Code:
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            

            int[] myarray = new int[5];
           
            myarray[0] = 1;
            myarray[1] = 2;
            myarray[3] = 3;
            myarray[4] = 5;


            richTextBox1.Text = myarray[];


            

        }
    }
}

Hallo, ich bin gerade dabei die Grundlagen von Arrays zu erlernen. Dazu habe ich ein Problembeispiel erstellt. Ich komme jedoch nicht weiter, weil es zu einen Fehler kommt. Ihr könnt euch das ganze im Bild und im Code anschauen.

Ich möchte, wenn ich auf Button1 klicke, dass in der richtextbox der inhalt erscheint. Dies ist jedoch nicht möglich, bezüglich des Fehlers.

Ich wünsche mir, das Ihr mir weiterhelft.
 
Schade, ich habe geraten, weil ich im Netz meist zur Ausgabe Consolencode gefunden habe. Zusätzlich war ich auf der Suche nach einen einfachen Array.
 
Code:
for (int i = 0; i < myarray.Length; i++)
{
       richTextBox1.Text = myarray[i].ToString() + "\n";
}

Probiere mal das aus. ;)
 
Zuletzt bearbeitet:
Du vergleichst hier Äpfel mit Motorrädern.

Dein myarray ist eine Liste von ganzen Zahlen (int[]). richTextBox1.Text ist aber vom Typ "string", also ein Text. Möchtest du deine Zahlensammlung in die Textbox bringen, dann musst du die erst in einen String konvertieren.

Hier ist aber die Frage, ob das das ist, was du willst. Lies dir am besten etwas Anfänger-Lektüre zum Thema "Typen in C#" und "Arbeiten mit Windows Forms in C#" durch. Das dürfte etwas mehr erklären als wir hier schreiben könnten :)

Nachtrag:

Möchtest du den Inhalt eines beliebigen Arrays trotzdem dort anzeigen lassen, so empfehle ich folgenden Codeschnipsel zu verwenden:
Code:
richTextBox1.Text = "";
for (int i=0;i<myarray.Length;i++)
{
    richTextBox1.Text += Convert.ToString(myarray[i]) + "\n";
}

Das konvertiert fast jeden beliebigen Array-Inhalt in Text, welcher dann direkt in der Textbox landet.
 
Zuletzt bearbeitet: (Zeilenumbruch hinzugefügt)
@Hugo
Das klappt schonmal besser. Ich bekomme nun in der Richtextbox 5 dargestellt.

Jedoch möchte ich, dass 12345 untereinander dargestellt wird.

@SoDaTierchen

Gut zu wissen, ich kann es ja mal probieren zu konvertieren.
 
Zuletzt bearbeitet:
Ja sorry mein Fehler.

Code:
for (int i = 0; i < myarray.Length; i++)
{
       richTextBox1.Text = richTextBox1.Text  + myarray[i].ToString( )+ "\n";
}

Probiere mal das aus. ;)
 
Wie soll denn da 12345 rauskommen?! Die Zahlen stehen nicht im Array, da steht 12035 drin!

edit: versuchs mal so:
Code:
        private void button1_Click(object sender, System.EventArgs e)
        {         
            int[] myarray = new int[5];           
            myarray[0] = 1;
            myarray[1] = 2;
            myarray[2] = 3;
            myarray[3] = 4;
            myarray[4] = 5;
            string buf = string.Empty;            
            for (int i = 0; i < myarray.Length; i++)
            {
                buf += myarray[i].ToString() + "\n";
            }
            richTextBox1.Text = buf;  
        }
Ergänzung ()

Hugo schrieb:
Code:
for (int i = 0; i < myarray.Length; i++)
{
       richTextBox1.Text = richTextBox1.Text  + myarray[i].ToString( )+ "\n";
}
Geht kürzer mit += und funktioniert auch nur beim ersten Mal!
 
Zuletzt bearbeitet: (code ergänzt)
SheldonCooper schrieb:
Ergänzung ()

Geht kürzer mit += und funktioniert auch nur beim ersten Mal!

Ich weiß das es auch kürzer geht aber er solls ja auch verstehn. ;)
 
Zuletzt bearbeitet:
@SoDaTierchen Ich habe ein paar einfache Verbesserung vorgenommen und der Code wurde wir nebeneinander dargestellt.
"Typen in C#" habe ich hier gefunden: http://msdn.microsoft.com/de-de/library/ms173104.aspx
Mich würde jedoch viel mehr "Arbeiten mit Windows Forms in C" interessieren. Wo finde ich das?

@Hugo Der Code klappt auch gut.

Danke euch 2 dass Ihr mein wunsch erfüllt habt.
 
lxlox schrieb:
@SoDaTierchen Ich habe ein paar einfache Verbesserung vorgenommen und der Code wurde wir nebeneinander dargestellt.
"Typen in C#" habe ich hier gefunden: http://msdn.microsoft.com/de-de/library/ms173104.aspx
Mich würde jedoch viel mehr "Arbeiten mit Windows Forms in C" interessieren. Wo finde ich das?

@Hugo Der Code klappt auch gut.

Danke euch 2 dass Ihr mein wunsch erfüllt habt.

Ensthaft?! Du bedankst dich bei denen und nicht bei mir??? Verdammt, was stimmt mit dir nicht?
1.) SoDaTierchens Konvertieren ist überflüssig
2.) Hugos Code funktioniert nicht - klick mal ein zweites Mal auf den Button

Warum zu Hölle bedankst du dich nicht bei mir??? Mein Code liefert als einziger deine gewünschte Zeichenfolge 12345 untereinander, verdammt!!!
 
Das ist ja sogar die Offizielle Microsoft-Quelle. Ich bin begeistert :) Wenn du den Beitrag gelesen und verstanden hast, sowie den Abschnitt "Umwandlung und Typkonvertierung", dann kannst du dein Problem schon fast selbst lösen :)

Ich habe spontan mal dieses Tutorial gefunden, in dem das Erstellen von Windows Forms erklärt wird - ist aber etwas länger. Der Programmiereinstieg ist leider lang und müßig, aber wenn man es nicht von vornherein richtig macht, wird man sich später enorm ärgern und es kommt jede Menge Frust auf.

@SheldonCooper: Schlaf bitte deinen Rausch aus :) Deine Beiträge haben vor deinen Edits keine gehaltvollen Informationen gehabt und auch jetzt ist dein Verhalten nicht wirklich Erwachsen. Zudem ist mein Konvertieren nicht überflüssig, sondern perspektivisch gedacht. Da es sich hier (noch) nur um Debug-Ausgaben im kleinen Stil handelt, sind die 5 OP-Codes mehr nicht relevant, dafür könnte lxlox den Code für fast beliebige Arrays verwenden. Zudem löst dein Code nicht das Problem, das lxlox hat, sondern erzeugt nur die gewünschte Ausgabe. Versteh das bitte nicht als Angriff - eher als konstruktive Kritik :)
 
Zuletzt bearbeitet:
SheldonCooper schrieb:
Ensthaft?! Du bedankst dich bei denen und nicht bei mir??? Verdammt, was stimmt mit dir nicht?
1.) SoDaTierchens Konvertieren ist überflüssig
2.) Hugos Code funktioniert nicht - klick mal ein zweites Mal auf den Button

Warum zu Hölle bedankst du dich nicht bei mir??? Mein Code liefert als einziger deine gewünschte Zeichenfolge 12345 untereinander, verdammt!!!

Jetze wo du es sagst. Stimmt. Ich habe wohl nicht richtig gekuckt und bin von der Logik des Codes und dem daraus resultierenden Ergebnis ausgegangen. Ich werde mich demnächst mit deinem code und den für mich neuen begriffen "empty" und "Length" auseinandersetzten.

Danke

edit: @ Hugo

Im Prinzip klappt dein Code beim einmaligen klicken auf den button.
 
Zuletzt bearbeitet:
Hugo schrieb:
Wieso sollte mein Code nur beim ersten Mal funktionieren?

Siehtst du das echt nicht? Jedes Mal wenn man klickt wird
1
2
0
3
5
angehängt
 
Ja und? Er wollte wissen wie er den Inhalt aus dem Array in der richtextbox anzeigt. Und genau das macht mein Code.
Genau so könnte man für dein
Code:
string buf = string.Empty;
auch
Code:
richTextBox1.Text = "";
schreiben.

Code:
richTextBox1.Text = "";
for (int i = 0; i < myarray.Length; i++)
{
    richTextBox1.Text = richTextBox1.Text + myarray[i].ToString( )+ "\n";
}

Jetzt macht er genau das selbe wie bei dir. :rolleyes:
 
SoDaTierchen schrieb:
sondern erzeugt nur die gewünschte Ausgabe.
Ja, mein Code macht genau das, was gewünscht war. Im Gegensatz zu allen anderen. Ich verstehe nicht was daran zu kritisieren ist.
 
@SheldonCooper: Das Bestreben von lxlox ist höchstwahrscheinlich C# zu lernen. Die Ausgabe im Speziellen spielt da keine Rolle. Und in so einem Fall hilft es mehr, eine Erklärung zu dem Fehler abzugeben und VIELLEICHT einen Lösungsvorschlag zu posten, das ist aber Optional. Im besten Fall kann der TE die Lösung anhand der Tips sogar selbst lösen.

Einzelne Code-Schnipsel ohne Erklärung zu posten, die einfach nur die gewünschte Ausgabe erzeugen (obwohl sie gar nicht das eigentliche Problem repräsentiert, wie du ja an dem fehldenden myarray[2]=3 schon bemerkt hast), erzielt keinerlei Lerneffekt. Sollte es aber tatsächlich NUR um die Ausgabe und gar nicht um den Lerneffekt gegangen sein, so ist dein Beitrag natürlich der wertvollste.


Ich persönlich stelle mir vor dem Beantworten von Foreneinträgen zuerst die Frage: Worauf will der TE hinaus? Mal ist es offensichtlich, mal etwas versteckter. Aber gerade wenn man solche Anfängerfehler macht (sorry lxlox, ist nicht böse gemeint), gehe ich davon aus dass eine sture CTRL+C/V-Lösung nicht wirklich weiterhilft, sondern nur zu einer Reihe weiterer Foreneinträge auf selbem Niveau führt. Ich bevorzuge da lieber den Weg der Nachhaltigkeit durch Mitdenken :)


Um das ganze aber nicht ausufern zu lassen, verabschiede ich mich in diesem Beitrag mal und verweise auf den Post von TumbleWeed :)
 

Ähnliche Themen

Zurück
Oben