C# Einem Array/Einer Liste ein Zeichen hinzu fügen

Palladin007

assimiliert
Moinsens


Ich will einem vorher definierten, aber lehren Array einige Zeichen hinzu fügen.

Ich habe es erst auf diese Weise versucht:

Code:
string[] Zahl;
Zahl[1] = "1";
Zahl[2] = "2";
Zahl[3] = "3";
Zahl[4] = "4";
...

Daraus hab ich dann diese Zähl-Schleife gemacht:

Code:
string[] Zahl;
int ArrayLänge = 81 ;
for (int i = 0; i < ArrayLänge; i = i - 1)
{
    Zahl[i]="i";
}

Allerdings gibt das dann diesen Fehler aus:
Verwendung der nicht zugewiesenen lokalen Variablen "Zahl"


Was hab ich falsch gemacht?

Oder wie kann ich einem Array ein weiteres Zeichen "hinten anhängen"

Bei Listen konnte man das mit add machen, aber wie geht das bei einem Array?
 
Zuletzt bearbeitet:
Ich habs jetzt mal damit versucht:

Code:
            int ArrayLänge = 82;

            List<string> Zahl = new List<string>();
            for (int i = 0; i < ArrayLänge; i = i - 1)
            {
                Zahl = Zahl.Add("i");
            }

Das müsste der Liste ja eigentlich die Zahlen von 0 bis 81 hinzu fügen, oder?

Aber es gibt für diese Zeile:
Code:
Zahl = Zahl.Add("i");
nach dem Gleichheits-Zeichen folgenden Fehler aus:

Eine implizite Konvertierung vom Typ "void" in "System.Collections.Generic.List<string>" ist nicht möglich.
 
Code:
i = i - 1
dürfte falsch sein. Du hast i=0 und willst bis i+x (wobei x>0) kommen, wenn Du bei jeden Durchlauf i-1 durchführst könnte das etwas dauern. ;)

Statt
Code:
Zahl = Zahl.Add("Bla");
dies
Code:
Zahl.Add("Bla");
 
Zuletzt bearbeitet:
Zu erstens:

Stimmt, das hab ich vergessen^^
Hab eine Schleife kopiert, die ab zählt.^^



Das zweite hat funktioniert, danke^^
 
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections; //Arraylist

namespace Automobil
{
    public partial class Form1 : Form
    {
        Auto fahrzeug;
        PKW pkw_neu;
        LKW lkw_neu;
        ArrayList arrayList = new ArrayList(); 

        public Form1()
        {
            InitializeComponent();

            //Instanz einer Klasse durch Aufruf des Konstruktor
            fahrzeug = new Auto();
            pkw_neu = new PKW();
            lkw_neu = new LKW();
        }

        //Tanken
        private void cmd_tanken_Click(object sender, EventArgs e)
        {
            fahrzeug.tanken(Convert.ToDouble(txt_tanken.Text));
        }

        //Kilometer gefahren
        private void cmd_fahren_Click(object sender, EventArgs e)
        {
            fahrzeug.fahren(Convert.ToInt32(txt_verbrauch.Text));
            fahrzeug.verbrauch_durch();
        }

        //Abgespeichertes Fahrzeug anzeigen
        private void cmd_anzeigen_Click(object sender, EventArgs e)
        {
            /*lbl_kilometer.Text = "Kilometerstand: " + fahrzeug.kilometerstand + " km";
            fahrzeug.verbrauch_durch();
            lbl_tankinhalt.Text = "Verbrauch: " + fahrzeug.verbrauch + " l/100km";
            lbl_verbrauch.Text = "Tankinhalt: " + fahrzeug.tankinhalt + " Liter"; */

            //Jedes Object in arrayliste durchsuchen
            foreach (Object x in arrayList)
            {
                if (x.GetType() == typeof(PKW))
                {
                    try
                    {
                        PKW pkw_puffer = (PKW)x;

                        if (pkw_puffer.Name == autoliste.SelectedItem.ToString())
                        {
                            lbl_sitzplaetze.Visible = true;
                            txt_sitzplaetze.Visible = true;
                            lbl_achsen.Visible = false;
                            txt_achsen.Visible = false;

                            txt_name.Text = pkw_puffer.Name;
                            txt_sitzplaetze.Text = Convert.ToString(pkw_puffer.Sitzplaetze);
                            txt_kilometerstand.Text = Convert.ToString(pkw_puffer.kilometerstand);
                            txt_tanken.Text = Convert.ToString(pkw_puffer.tankinhalt);
                            txt_verbrauch.Text = Convert.ToString(pkw_puffer.verbrauch);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Bitte Fahrzeug in Liste auswählen!\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                else if (x.GetType() == typeof(LKW))
                {
                    LKW lkw_puffer = (LKW)x;

                    try
                    {
                        if (lkw_puffer.Name == autoliste.SelectedItem.ToString())
                        {
                            lbl_achsen.Visible = true;
                            txt_achsen.Visible = true;
                            lbl_sitzplaetze.Visible = false;
                            txt_sitzplaetze.Visible = false;

                            txt_name.Text = lkw_puffer.Name;
                            txt_achsen.Text = Convert.ToString(lkw_puffer.Achsen);
                            txt_kilometerstand.Text = Convert.ToString(lkw_puffer.kilometerstand);
                            txt_tanken.Text = Convert.ToString(lkw_puffer.tankinhalt);
                            txt_verbrauch.Text = Convert.ToString(lkw_puffer.verbrauch);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Bitte Fahrzeug in Liste auswählen!\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning); 
                    }
                }
            }

           
        }

        private void cmd_speichern_Click(object sender, EventArgs e)
        {
            if (rb_lkw.Checked)
            {
                //Wenn falsche Werte eingegeben werden, erscheint ein Fehler
                try
                {
                    lkw_neu = new LKW();
                    lkw_neu.Name = txt_name.Text;
                    lkw_neu.Achsen = Convert.ToInt32(txt_achsen.Text);
                    lkw_neu.kilometerstand = Convert.ToInt32(txt_kilometerstand.Text);
                    lkw_neu.tankinhalt = Convert.ToInt32(txt_tanken.Text);
                    lkw_neu.verbrauch = Convert.ToDouble(txt_verbrauch.Text);
                    autoliste.Items.Add(lkw_neu.Name);
                    arrayList.Add(lkw_neu);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Fehler\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            else if (rb_pkw.Checked)
            {
                //Wenn falsche Werte eingegeben werden, erscheint ein Fehler
                try
                {
                    pkw_neu = new PKW();
                    pkw_neu.Name = txt_name.Text;
                    pkw_neu.Sitzplaetze = Convert.ToInt32(txt_sitzplaetze.Text);
                    pkw_neu.kilometerstand = Convert.ToInt32(txt_kilometerstand.Text);
                    pkw_neu.tankinhalt = Convert.ToInt32(txt_tanken.Text);
                    pkw_neu.verbrauch = Convert.ToDouble(txt_verbrauch.Text);
                    autoliste.Items.Add(pkw_neu.Name);
                    arrayList.Add(pkw_neu);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Fehler: " + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Bitte einen Autotypen wählen!", "",MessageBoxButtons.OK, MessageBoxIcon.Warning);
            } 
        }

        private void rb_pkw_CheckedChanged(object sender, EventArgs e)
        {
            lbl_sitzplaetze.Visible = true;
            txt_sitzplaetze.Visible = true;
            lbl_achsen.Visible = false;
            txt_achsen.Visible = false;
        }

        private void rb_lkw_CheckedChanged(object sender, EventArgs e)
        {
            lbl_achsen.Visible = true;
            txt_achsen.Visible = true;
            lbl_sitzplaetze.Visible = false;
            txt_sitzplaetze.Visible = false;
        }

        private void label2_Click(object sender, EventArgs e)
        {

        }
    }
}
####################################
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Automobil
{
    public class Auto
    {
        public Auto()
        {}

        public int kilometerstand =0;
        public double verbrauch =0;
        public double tankinhalt =0;
        public string Name;

        public void tanken(double tankfuellmenge)
        {
            tankinhalt = tankinhalt + tankfuellmenge;
        }

        public void fahren(int kilometer_gefahren)  
        {
            kilometerstand = kilometerstand + kilometer_gefahren;
            tankinhalt = tankinhalt - (verbrauch/100)*kilometer_gefahren;
        }

        public void verbrauch_durch()
        {
            verbrauch = tankinhalt / kilometerstand;
        }

    }
}
###################################
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Automobil
{
    public class LKW : Auto
    {
        public int Achsen;
    }
}
 
Zuletzt bearbeitet:
@Flamme10:

Könntest du deinen Code bitte auch als Code einfügen?
Das verkürzt deinen Beitrag sehr und fügt eine Scroll-Leiste hinzu.
Außerdem behält es jede Stellung im C# Studio bei, die es einmal hatte.
Wäre nett, wenn du das dann noch einmal machen könntest.
Dazu gehst du einfach auf Bearbeiten, dann auf Erweitert und wählst unter den Buttons dieses: #
Und dann wird ein kleiner Code vordefiniert und dort kopierst du alles rein.




Zu deinem Code, den du gepostet hast:

Was ist das? Ich habe jetzt erst einmal ganz grob drüber geschaut, weil esso ziemlich blöd zu überschauen ist und nicht einfach im C# Studio einzufügen ist. Wegen fehlenden Verweisen, etc.
Aber wenn ich so fix drüber schaue, glaube ich nicht, ob das was mit dem Thema zu tun hat.



Edit:
Wenn du Hilfe bei einem Programm oder einem Fehler brauchst, dann kannst du natürlich gerne fragen, allerdings müsstest du uns dafür alle nötigen Informationen geben, da keiner von uns sich durch deinen Code wühlen will.
Also, was es können soll, wie es arbeitet, wie es aufgebaut ist, etc.
Und natürlich wo der Fehler vermutlich liegt und woran du ihn merkst und was du noch so für Infos hast.

Vielleicht könntest du auch gleich den ganzen Projekt-Ordner kopieren und als rar hoch laden, weil dann können wir uns das Programm vollständig im Studio ansehen, testen, den Fehler suchen und dir dabei helfen.

Aber so oder so, ein neues Thema solltest du trotzdem öffnen^^
 
Zuletzt bearbeitet:
Kannst du bitte dann auch noch die einzelnen Klassen voneinander trennen und angeben, welche Verweise du hinzu gefügt hast?
Oder, wie gesagt, den Projekt-Ordner als rar hoch laden.

So können wir helfen, wenn du eine Frage hast.
 
Oben