Ergebnis 1 bis 5 von 5

Thema: C# Arraybefüllung per Schleife?

  1. #1
    Großmeister(in) Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard C# Arraybefüllung per Schleife?

    Hallo,
    ich habe versucht in einer Schleife ein Array beliebig zu befüllen. Doch dies scheint mit C# anscheinend nicht möglich zu sein. Da ich mir dies jedoch nicht vorstellen kann, wollte ich hier noch einmal fragen.

    Mein Versuch:
    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] IntegerArray;
                for (int i = 0; i < 10; i++)
                {
                    int[] IntegerArray = 1;
                }
                Console.WriteLine(IntegerArray.Length);
                Console.ReadLine();
            }
        }
    }
    Dies geht jedoch nicht und es kommen mehre Fehlermeldungen.
    Eine lokale Variable mit dem Namen "IntegerArray" kann in diesem Bereich nicht deklariert werden, weil dadurch "IntegerArray" eine andere Bedeutung erhalten würde, was bereits im Bereich "übergeordnet oder aktuell" in anderer Bedeutung verwendet wird.

    Eine implizite Konvertierung vom Typ "int" in "int[]" ist nicht möglich.
    So bekomme ich erwartungsgemäß eine 5 zurück:
    Code:
    int[] IntegerArray = { 0, 1, 22, 4, 5 };
    Console.WriteLine(IntegerArray.Length);
    Console.ReadLine();
    Und in einem Tutorial habe ich gelesen, dass man dem Array auch gleich sagen muss, wie viele Elemente es haben soll "int[] IntegerArray = new int[10];", es sei denn man verwendet obige Methode... mit " = { 0, 1, 22, 4, 5 };".

    Kann man also wirklich ein Array nicht dynmaisch befüllen o.O?

    Edit:
    Die Arrays werden sichtlich am (new) zu erkennen als Objekte erstellt. Hier scheint es keine andere Möglichkeit zu geben. Jedoch kann man die Arrayelementezahl nachträglich ändern. Hier ein Beispiel:

    Code:
    int[] IntegerArray = new int[8];
    for (int n = 0; n < 8; n++)
    {
        IntegerArray[n] = n;
    }
    Console.WriteLine(IntegerArray.Length);
    IntegerArray = new int[10];
    for (int n = 0; n < 10; n++)
    {
        IntegerArray[n] = n;
    }
    Console.WriteLine(IntegerArray.Length);
    Console.ReadLine();
    Nach wie vor muss man hier natürlich wissen, wie viele Elemente ein Array braucht/hat...
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Darkxor (04.10.2009 um 02:42 Uhr)
    -

  2. #2
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: C# Arraybefüllung per Schleife?

    Ja das ist "leider" so. Kenn das verhalten zumindest von Java.

    Bei deiner "erweiterung" wird das alte Array aber nicht erweitert, sondern ein neues angelegt, das alte wird überschrieben.

    Genau so kann man später auch ein Array erweitern, bin in dem Zusammenhang selbst leider noch nicht vorgedrungen, aber es sollte mit Referenzen möglich sein.

    Sprich eine (eigene) Funktion aufrufen wie "add_to_array(array, 1)", in der Funktion wird die länge des übergegebenen Arrays ausgelesen, ein neues Array angelegt der selben größe +1 mit, werte übergeben und neuer wert am ende (zum Beispiel) reingesetzt.


    Persönlich hatte ich so was ähnliches in AutoIT gehabt, dort gab es bereits so eine Funktion. Also hab ich ein leeres Array angelegt und in der Schleife "addTo" verwendet

  3. #3
    minder
    Gast

    Standard AW: C# Arraybefüllung per Schleife?

    und was ist mit dem:
    Code:
    for(int i = 0; i < 10; i++)
    {
       myarray[i] = 1;
    }

  4. #4
    König(in) Avatar von Grevas
    Registriert seit
    20.04.2009
    Ort
    In meiner Wohnung.
    Alter
    30
    Beiträge
    1.039
    Danke
    0
    Bekam 5 mal "Danke" in 5 Postings

    Standard AW: C# Arraybefüllung per Schleife?

    Was soll damit sein? Wenn du vorher 10 plätze reserviert hast gibts da eben keine Probleme.

    C# hab ich leider nie benutzt, bei Java weiß ich, dass der Compiler motzt und das Script beendet wenn du nicht genug platz reserviert ist...

    /edit:
    hah, ich hatte recht http://www.tutorials.de/forum/c-c/23...te-laenge.html
    Es gibt auch in C# eine Add funktion ^^ und die heißt sogar ganz einfach add xP

    Also was du haben willst:

    Code:
    for (int i = 0; i < 10; i++)
    {
        myarray.Add(1);
    }
    Geändert von Grevas (10.10.2009 um 14:17 Uhr)

  5. #5
    Großmeister(in)
    Themenstarter
    Avatar von Darkxor
    Registriert seit
    17.11.2007
    Ort
    NRW
    Beiträge
    663
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: C# Arraybefüllung per Schleife?

    Vielen Dank Grevas. Du hast mich mit dieser Funktion nun sehr erleichtert
    -

Ähnliche Themen

  1. Problem mit Schleife in der Schleife
    Von 1234d1 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 16.06.2009, 18:41
  2. for Schleife in while Schleife
    Von morrers im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 23.12.2008, 11:28
  3. while schleife
    Von Walerik im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 18.01.2008, 17:25
  4. Repeat-Schleife?
    Von Solon im Forum Flash Forum
    Antworten: 1
    Letzter Beitrag: 06.06.2007, 14:58
  5. Zeitleisten und Schleife
    Von McPokers im Forum Flash Forum
    Antworten: 2
    Letzter Beitrag: 02.05.2007, 15:47

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •