Integer an Variable anhängen

EddieG

Erfahrenes Mitglied
Hi,
ich schäme mich eigentlich für die Frage aber ich muss sie dennoch stellen. Und zwar habe ich folgendes Problem:
Ich habe eine Variable von dem Typ BaseObject was BaseObject ist tut hier nichts zu Sache.
Diese wird in einer For Schleife immer wieder neu erstellt. Nun möchte ich aber nicht das Die Variable immer wieder überschrieben wird, da sich die Daten ändern, sondern dass der Variable die Zahl des Schleifen Durchgangs angehängt wird.
Code:
For(int i=1; i<Anzahl; i++)
{
 BaseObject test = BaseObject.Alloc();

}
Steht nun in "Anzahl" eine 5
sollte die Variable im prinzip so lauten
  1. er Durchgang test1
  2. er Durchgang test2
  3. er Durchgang test3
  4. er Durchgang test4
  5. er Durchgang test5

Ich habe es so versucht
Code:
 BaseObject test +""+i= BaseObject.Alloc();
Das geht so jedoch nicht. Habe ich eine Variante übersehen? Denn zu einem String kann ich es nun mal nicht konvertieren, da die Variable vom Typ BaseObject seien muss.

Jemand eine Idee?
 
C# als Programmiersprache ist nicht zu vergleichen mit Script Sprachen wie PHP oder Perl wo dynamische Variablennamen kein Problem darstellen.

Folgendes ist Beispielsweise in PHP kein Problem
PHP:
<?php

$var_1 = "foobar";

$varname = "var_";
$varnum  = "1";

echo ${$varname.$varnum}; // => foobar

In C# ist das nicht möglich da wirst du den "Umweg" über irgendeine Form von Array/Hashtable/Dictionary etc. gehen müssen.
C#:
BaseObject[] collection = new BaseObject[Anzahl];

For(int i=1; i<Anzahl; i++)
{
	collection[i] = BaseObject.Alloc(); 
}
 
Hallo,

dafür solltest du ein Array von BaseObject bereitstellen:
C#:
BaseObject [] aBaseObject = new BaseObject[Anzahl];

for( int i=1; i<Anzahl; i++ )
{
    BaseObject[i] = BaseObject.Alloc();
}
Gruß
MCoder

// EDIT: Zu langsam :D
 
Zurück