Hallo zusammen,
ich habe in meinem Hashtable mehrere Listen als Values.
Bei der Verwendung der Listen habe ich noch keine Möglichkeit gefunden, das Minimum über alle Listen aus allen Keys zu bestimmen oder einen Wert über die "ContainsValue"-Methode abzufragen.
Momentan konnte ich mit Hilfslisten und for-Schleifen weiterhelfen, allerdings ist das jetzt nicht besonders elegant und da muss es doch eine einfachere Möglichkeit geben?!
Ich würde gerne so etwas in der Art machen:
Minimum = TestHash.Item.Zeit.Min
Und über ContainsValue trotz Liste einen Key ausgegeben bekommen.
Kann mir da jemand weiterhelfen?
LG und schon einmal vielen Dank,
Milena
ich habe in meinem Hashtable mehrere Listen als Values.
Bei der Verwendung der Listen habe ich noch keine Möglichkeit gefunden, das Minimum über alle Listen aus allen Keys zu bestimmen oder einen Wert über die "ContainsValue"-Methode abzufragen.
Momentan konnte ich mit Hilfslisten und for-Schleifen weiterhelfen, allerdings ist das jetzt nicht besonders elegant und da muss es doch eine einfachere Möglichkeit geben?!
VB.NET-Quellcode
- Public Class Form1
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim TestHash As New Hashtable
- TestHash.Add(1,
- New Items With
- {
- .Zeit = New List(Of Integer) From {2, 5, 6},
- .Name = New List(Of String) From {"abc", "def", "ghi"}
- }
- )
- TestHash.Add(2,
- New Items With
- {
- .Zeit = New List(Of Integer) From {4, 5, 1},
- .Name = New List(Of String) From {"jkl", "def", "mno"}
- }
- )
- Dim Minimum As Integer
- 'so etwas in der Art würde ich gerne machen:
- 'Minimum = TestHash.Item.Zeit.Min
- 'momentan komme ich so sehr umständlich ans Ziel:
- Dim Hilfsliste As New List(Of Integer)
- Dim MinHilfsliste As New List(Of Integer)
- For Each Key In TestHash.Keys
- Hilfsliste = TestHash.Item(Key).Zeit
- MinHilfsliste.Add(Hilfsliste.Min)
- Next
- Minimum = MinHilfsliste.Min
- Dim MinKey As Integer
- For Each Key In TestHash.Keys
- If TestHash.Item(Key).Zeit.Contains(Minimum) Then
- MinKey = Key
- Exit For
- End If
- Next
- 'hier bekomme ich die Rückmeldung, dass keine "2" vorhanden sei, so funktioniert's also auch nicht????
- If TestHash.ContainsValue(2) Then
- Dim a As Boolean = True
- End If
- End Sub
- End Class
- Public Class Items
- Public Property Zeit As List(Of Integer)
- Public Property Name As List(Of String)
- End Class
Ich würde gerne so etwas in der Art machen:
Minimum = TestHash.Item.Zeit.Min
Und über ContainsValue trotz Liste einen Key ausgegeben bekommen.
Kann mir da jemand weiterhelfen?
LG und schon einmal vielen Dank,
Milena