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?
3 Antworten
Nein du musst dem Array eine feste Grösse geben. In deinem Fall (i = 0; i < 10) wäre diese Grösse 10. Also:
int[] integerArray = new integerArray[10];
Jetzt kannst du mit einer Schlaufe das Array befüllen:
for (int i = 0; i < integerArray.Length; i++)
integerArray[i] = i;
Für "Dynamische Arrays" solltest du einen Blick auf Lists werfen:
Die Sprache gelernt?? Obwohl, dein Problem aus der Fragestellung hat nichts mit einer bestimmten Programmiersprache zu tun -- die fehlt noch das Denken/Wissen, wie ein Computer Befehle abarbeitet usw.
So sollte das funktionieren. Habe seit Jahren nichtmehr mit C# gearbeitet. Wenn nicht, dann dürften villeicht (da du ja explizit dynamische Arrays möchtest) Dictionary's was für dich sein.
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++)
{
IntegerArray[] = 1;
}
Console.WriteLine(IntegerArray.Length);
Console.ReadLine();
}
}
}
Du musst ausserhalb der Schleife erstmal die Größe des Arrays initialisieren.
int[] integerArray = new integerArray[10];
und in der Schleife musst du dann auf die jeweilige Stelle des Arrays per Index zugreifen
integerArray[i] = 1;
Ein Array ist ein Speicherbereich aus (in diesem Fall) Integern, du musst expliziet angeben auf welchen der n Integer du zugreifen willst...
vielen Dank, woher könnt ihr das?