vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
KeyedValuesExpandable: Ein Mix aus List und Dictionary 
Autor: Manfred X
Datum: 28.04.14 14:30

Imports System.Collections.Generic
 
Public Class KeyedValuesExpandable(Of T)
    Inherits List(Of Dictionary(Of String, T))
 
 
    ''' <summary>Listenindex ggf. erstellen - Member erstellen oder 
    ' aktualisieren</summary>
    ''' <param name="index">Listenindex (wird ggf. angefügt)</param>
    ''' <param name="key">Schlüssel (wird ggf. erstellt)</param>
    ''' <param name="value">zuzuweisender Wert des Schlüssels</param>
    Public Function SetKeyValue(ByVal index As Integer, _
                                key As String, value As T) As Integer
 
        If value Is Nothing Then
            Throw New ArgumentException("Fehlender Wert")
        End If
 
        If index >= Me.Count Then
            Dim dic As New Dictionary(Of String, T)
            Me.Add(dic)
            index = Me.Count - 1
        End If
 
        If Me(index).ContainsKey(key) Then
            Me(index)(key) = value
        Else
            Me(index).Add(key, value)
        End If
        Return index
    End Function
 
 
    ''' <summary>Versuch der Abfrage eines Schlüssels an einem Listenindex</summary>
    ''' <param name="index">abzufragender Index der Liste</param>
    ''' <param name="key">abzufragender Schlüssel</param>
    ''' <param name="value">Wert des Schlüssels (oder Nothing)</param>
    ''' <returns>Index und Schlüssel vorhanden?</returns>
    Public Function TryGetKeyValue(ByVal index As Integer, _
                                   ByVal key As String, ByRef value As T) As _
                                   Boolean
        value = Nothing
        If index < 0 Or index >= Me.Count Then Return False
        If Not Me(index).ContainsKey(key) Then Return False
        value = Me(index)(key)
        Return True
    End Function
End Class
Anwendungsbeispiel:
   Dim lstexp As New KeyedValuesExpandable(Of String)
 
   With lstexp
      .SetKeyValue(0, "Name", "Max Mustermann")
      .SetKeyValue(0, "Telefon", "097-1234-567")
 
      .SetKeyValue(1, "Name", "Hans Mustermann")
      .SetKeyValue(1, "Ort", "Musterdorf")
      .SetKeyValue(1, "Ort", "Musterhausen") 'Berichtigung
 
 
      Dim valuetoget As String = ""
 
      For i As Integer = 0 To .Count - 1
          If .TryGetKeyValue(i, "Ort", valuetoget) Then
             MsgBox("Index " & CStr(i) & ", Schlüssel Ort = " & valuetoget)
          Else
             MsgBox("Index " & CStr(i) & ", Schlüssel Ort nicht gefunden")
          End If
 
          If .TryGetKeyValue(i, "Telefon", valuetoget) Then
             MsgBox("Index " & CStr(i) & ", Schlüssel Telefon = " & valuetoget)
          Else
             MsgBox("Index " & CStr(i) & ", Schlüssel Telefon nicht gefunden")
          End If
      Next i
 
   End With
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Dictionary(Of String) erweitern ?2.533darkman20327.04.14 08:22
Re: Dictionary(Of String) erweitern ?1.723Manfred X27.04.14 12:11
Re: Dictionary(Of String) erweitern ?1.891ModeratorDaveS27.04.14 14:31
Re: Dictionary(Of String) erweitern ?1.791Manfred X27.04.14 14:45
Re: Dictionary(Of String) erweitern ?1.762ModeratorDaveS27.04.14 14:49
Re: Dictionary(Of String) erweitern ?1.842Manfred X27.04.14 15:18
Re: Dictionary(Of String) erweitern ?1.703ModeratorDaveS27.04.14 15:31
Re: Dictionary(Of String) erweitern ?1.751Manfred X27.04.14 15:42
Re: Dictionary(Of String) erweitern ?1.685ModeratorDaveS27.04.14 16:58
ExpandoObject: Members untersuchen1.834Manfred X27.04.14 19:44
Re: Dictionary(Of String) erweitern ?1.704DotNetErbse28.04.14 08:23
KeyedValuesExpandable: Ein Mix aus List und Dictionary1.866Manfred X28.04.14 14:30
Re: KeyedValuesExpandable: Ein Mix aus List und Dictionary1.783ModeratorDaveS28.04.14 14:46
Flexibles T1.715Manfred X28.04.14 15:44

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel