Laden...

Was als Ersatz für TStringList (Delphi) in C# verwenden?

Erstellt von Rungholt vor 13 Jahren Letzter Beitrag vor 13 Jahren 3.014 Views
R
Rungholt Themenstarter:in
7 Beiträge seit 2007
vor 13 Jahren
Was als Ersatz für TStringList (Delphi) in C# verwenden?

Hallo,

ich bin C# Neuling und komme aus der Delphi-Schiene.

Ein sehr wichtige Klasse für mich unter Delphi ist "TStringList".
An eine StringList kann ich String-Items hängen und an jedes Item
unterschiedliche Objekte. Mit einem TypeCast kann ich auf diese Objekte
hinterher wieder zugreifen. (Beispiel unten)

Mit welcher .Net -Klasse realisiere ich das unter C# und vor allem wie? 😃

Delphi Beispiel:


var MyList      : TStringList;
    LstIX        : Integer;
    MyObj      : TXBelObj;

MyList := TStringList.create; // Liste erzeugen
MyObj := TXBelObj.create;  // Objekt erzeugen

LstIX := MyList.AddObject('Mein Objekt',MyObj); //Obj an Liste hän., Indx. zurückgeb.

TXBelObj(MyList.Objects[LstIX]).MethodeDesObjekts; // Zugriff auf Objekt-Methode


Gruß
Sascha

A
350 Beiträge seit 2010
vor 13 Jahren

Hi,

soetwas gibt es nicht.
Deinen bedürfnissen eher passend wäre eiN Dictionary.
Du kannst dir natürlich die Mühe machen und zB eine List<DeineKlasse> udn eine eigene Klasse definieren.
Dir steht es auch frei eine eigene Implementation zu machen, ich denke mit dem Dictionary kommst du weiter (Dictionary<string,object>)

Grüße

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo Rungholt,

verwende nicht ArrayList, verwende stattdessen List<T>.

zero_x

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo Rungholt,

klingt nach Dictionary<String, DeineKlasse>.

herbivore

R
Rungholt Themenstarter:in
7 Beiträge seit 2007
vor 13 Jahren

Ok, die Klasse Dictionary sieht gut aus. Danke für die Antworten.

Nun komme ich allerdings zum nächsten Problem. Wie führe ich die Methoden des Objektes aus? Beispiel, ich hänge einen zur Designzeit auf das Formular gelegten
Button in das Dictionary und möchte einfach dessen Click ausführen.


Dictionary<string, Button> MyDict = new Dictionary<string, Button>();

MyDict.Add("Button",btnTest);

((Button)MyDict["Button"]).Click; // <-- frisst der Compiler nicht

L
416 Beiträge seit 2008
vor 13 Jahren

Click ist keine Methode sondern ein Event des Buttons. Rufe stattdessen die Methode auf die das Event behandelt (bei automatischer Generierung "button_Click") (wobei das in dem Beispiel nicht unbedingt Sinn macht).

C
52 Beiträge seit 2008
vor 13 Jahren

Du solltest dir aufjendefall mal das openbook C# anschaune. findest du links im hauptmenü unter dem Punkt Ressourcen.

Das sind Grundlagen, und die werden hier vorrausgesetzt.
Das wird dir warscheinlich gleich auch noch einer der Mods schreiben und dich auf die FAQ hinweise.

Hinweis von herbivore vor 13 Jahren

Nein, es reicht vollkommen, dass du darauf hingewiesen hast