Laden...

Liste aus Klassen?

Erstellt von Incubus vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.305 Views
I
Incubus Themenstarter:in
8 Beiträge seit 2007
vor 16 Jahren
Liste aus Klassen?

Hi,

ich weiß dass man in C++ einen Vector oder eine Liste aus Klassen erstellen kann. Leider weiß aber nicht genau wie ich das in C# umsetzen soll. Ich erkläre mal was ich machen will.

Ich will dynamisch angeben wie viele Klassen erstellt werden sollen. Also angenommen ich will für X Personen eine eigene Klasse erstellen, die verschiedene Informationen (Variablen) enthält. Dann will ich auch für bestimmte Personen die Informationen ändern oder drauf zugreifen.

Vielleicht kann mir jemand ein kurzes Beispiel schicken???

Thnx schon mal an alle Helfenden...

998 Beiträge seit 2007
vor 16 Jahren

private List<Person> deine Funktion(int x)
{
  List<Person> personen = new List<Personen>(x);
  for(int i = 0; i<x; i++)
    personen.add(new Person());
  return personen;
}

Guten Rutsch!

5.942 Beiträge seit 2005
vor 16 Jahren

Hallo Incubus

Eine Liste aus Klassen gibts nicht, sondern eine Liste von Objekten deiner Klasse 🙂
Guten Rutsch ihr beiden!

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

J
3.331 Beiträge seit 2006
vor 16 Jahren

Hallo,

wirklich verstanden habe ich Dein Vorhaben nicht. Wenn ich aber daran denke, was es "üblicherweise" gibt, dann ist folgendes Verfahren sinnvoll (rudimentärer Code):

//  die Klasse einer einzelnen Person
public class Person{...}
//  eine Sammlung von Instanzen dieser Klasse
List<Person> Personen = new List<Person>();
//  auf jede einzelne Instanz kann beliebig zugegriffen werden
Personen[17].Name = "Meier";

Wenn Du einen Index direkt einbauen willst, ist auch denkbar:

Dictionary<int, Person> Personen = new Dictionary<int, Person>();
Person meier = new Person(17, "Meier");
Personen.Add(meier.ID, meier);

Näheres findest Du in der :rtfm: unter den genannten Begriffen, wobei die Vorschläge von David und Peter einbezogen werden können.

Guten Rutsch! Jürgen

I
Incubus Themenstarter:in
8 Beiträge seit 2007
vor 16 Jahren

Ich danke euch allen vielmals... 🙂

Das hilft mir auf jeden Fall weiter. Na klar meinte ich die Instanzen 😉 aber mit klasse versteht ihr mich ja schon.

Ich hoffe ihr seid alle gut gerutscht...

Gruß,Incubus

0
767 Beiträge seit 2005
vor 16 Jahren

du hast zwar schon was du willst, aber wenn du "Liste von Klassen" schreibst, hätte ich dir mit


List<Type>

weitergeholfen. Das ist zwar nicht, was du willst, aber das was ich verstanden hätte 🙂

loop:
btst #6,$bfe001
bne.s loop
rts

J
3.331 Beiträge seit 2006
vor 16 Jahren

Frohes Neues Jahr!

du hast zwar schon was du willst, aber wenn du "Liste von Klassen" schreibst, hätte ich dir mit

  
List<Type>  
  

weitergeholfen. Das ist zwar nicht, was du willst, aber das was ich verstanden hätte 🙂

Ich behaupte mal frech: das ist nichts anderes, als was DavidT und ich schon vorgeschlagen hatten. Jürgen

564 Beiträge seit 2005
vor 16 Jahren

Mit Type ist aber nicht ein beliebiger Typ, sondern System.Type gemeint.

0
767 Beiträge seit 2005
vor 16 Jahren

ja, ich meinte System.Type, damit sowas ginge:


list.Add(typeof(Person));
list.Add(typeof(DateTime));

das wäre eine Liste von Klassen, oder mit .net Worten gesagt, eben eine Liste von System.Type, da Type ja alles sein kann: int, class, struct, enum...

loop:
btst #6,$bfe001
bne.s loop
rts

J
3.331 Beiträge seit 2006
vor 16 Jahren

@0815Coder und @ZiMD
OK, Ihr hättet: Wenn Incubus wirklich "Liste von Klassen" gemeint hätte, wäre so etwas der richtige Weg. Bitte entschuldigt meine vorlaute Zurückweisung. 👍

Incubus hatte allerdings weitergeschrieben:

Ich will dynamisch angeben wie viele Klassen erstellt werden sollen. Also angenommen ich will für X Personen eine eigene Klasse erstellen
und später (vor Eurem Vorschlag):
Na klar meinte ich die Instanzen

Also sollte sich die Lösung des Problems auf List<Person> beschränken.

Nochmals Frohes Neues Jahr! Jürgen