Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Was als Ersatz für TStringList (Delphi) in C# verwenden?
Rungholt
myCSharp.de - Member



Dabei seit:
Beiträge: 7
Herkunft: FFM

Themenstarter:

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

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Ahrimaan
myCSharp.de - Member



Dabei seit:
Beiträge: 363
Herkunft: Thorn

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
zero_x
myCSharp.de - Member

Avatar #avatar-2567.gif


Dabei seit:
Beiträge: 1069
Herkunft: Koblenz

beantworten | zitieren | melden

Hallo Rungholt,

verwende nicht ArrayList, verwende stattdessen List<T>.

zero_x
zero_x | myCSharp.de - gemeinsam mehr erreichen

Für längere Zeit inaktiv.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo Rungholt,

klingt nach Dictionary<String, DeineKlasse>.

herbivore
private Nachricht | Beiträge des Benutzers
Rungholt
myCSharp.de - Member



Dabei seit:
Beiträge: 7
Herkunft: FFM

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 429
Herkunft: Bawü

beantworten | zitieren | melden

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).
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lennart am .
private Nachricht | Beiträge des Benutzers
Craze89
myCSharp.de - Member



Dabei seit:
Beiträge: 52
Herkunft: NRW

beantworten | zitieren | melden

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.

Moderationshinweis von herbivore (10.08.2010 - 16:33:33):

Nein, es reicht vollkommen, dass du darauf hingewiesen hast

private Nachricht | Beiträge des Benutzers