Zugriff auf Objekt in einem Array anhand des Namens

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von sirblacksoul.

    Zugriff auf Objekt in einem Array anhand des Namens

    Wie der Name schon sagt, würde ich gerne wissen wie ich eine Objekt Collection so erstellen kann, das ich wie z.B. bei der DataTable einzelne Objekte ermitteln kann. Hier ein Beipsiel was ich machen möchte:

    VB.NET-Quellcode

    1. Dim tbl As DataTable
    2. Dim col As DataColumn = tbl.Columns[color=#ff0000]("name")[/color]


    Ich habe ein Objekt namens Baustein und eine Collection in der beliebig viele Bausteine aufgenommen werden können.

    VB.NET-Quellcode

    1. BausteinCollection
    2. Baustein ab
    3. Baustein abc
    4. Baustein abcd
    5. Baustein abcde
    6. Ende BausteinCollection


    nun möchte ich so den entsprechenden Baustein ermittelt haben:

    VB.NET-Quellcode

    1. Dim a As Baustein = BausteinCollection("abcd")



    Bin dankbar für jede Hilfe
    Sieh Dir mal

    VB.NET-Quellcode

    1. Hashtable(..)
    2. Dictionary(..)

    an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ich verstehe nicht ganz was mir das bringen soll. Ich möchte keine Zuordnung, ich möchte ein Ojekt anhand seines Namens in einem Array ermitteln auf die art und weise wie Microsoft das bei der DataTable macht.

    ----------------- Edit ----------------------

    Habs selbst hinbekommen hatte wohl einfach nur ne Denkblokade. Für alle die irgendwann mal das selbe Problem haben:

    Einfach eine Öffentliche Eigenschaft mit Übergabeparameter Name | id oder was auch immer übergeben innerhalb der Eigenschaft könnt ihr dan einfach das objekt wiedergeben hier ein Beispiel:

    VB.NET-Quellcode

    1. Public ReadOnly Property Steine(ByVal Name As String) As Baustein
    2. Get
    3. For Each Stein As Baustein In _Steine
    4. If Stein.Name = Name Then
    5. Return Stein
    6. End If
    7. Next
    8. Return Nothing
    9. End Get
    10. End Property


    Der Zugriff wird dann einfach so gemacht:

    VB.NET-Quellcode

    1. Dim Coll As BausteinCollection
    2. ''' Hinzufügen von Objekten etc.
    3. Coll.Steine("DerNameDesSteins")

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „sirblacksoul“ ()