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:
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();
}
}
}
Alles anzeigen
Dies geht jedoch nicht und es kommen mehre Fehlermeldungen.
Zitat
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:
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:
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();
Alles anzeigen
Nach wie vor muss man hier natürlich wissen, wie viele Elemente ein Array braucht/hat...