2016-12-19 8 views
1

Ich möchte 100 Elemente in einer Liste mit den Eigenschaften PartName und PartId speichern. Ich möchte dann auf PartName suchen, als Beispiel mit dem Wort Stuhl. Von diesem möchte ich dann den Wert PartId abrufen.Abrufen von Werten aus einer Liste

Am Ende werde ich mit einem PartId von enden.

Wie kann ich das tun?

Code:

Dim parts As New List(Of Intialization)() 

' Add parts to the list. 
parts.Add(New Intialization() With {.PartName = "chair", 
            .PartId = 125}) 
+1

Ich verstehe nicht, Sie haben 100 Objekte, und Sie wollen die mit .PartName = "Stuhl" finden und was dann? Bitte klären Sie, und wie werden Sie die 100 Objekte bevölkern? – Esko

+3

'Dim Stuhl = Teile.Wohin (Funktion (p) p.PartName =" Stuhl ") FirstOrDefault()' –

+0

Will ich tun, ist eine Liste erstellen, wo ich den Namen und den Wert haben. Sobald ich in der Liste den Namen finde, muss ich den Wert des Namens extrahieren. Die Liste ist bereits ausgefüllt. –

Antwort

0

Sie dies auf verschiedene Weise erreichen könnte, ich werde Ihnen zeigen, einige LINQ Lösungen:

Dim partToSearch as String = "Chair" 
Dim partId as Integer = -1 
Dim init = parts.Where(Function(p) p.PartName=partToSearch).FirstOrDefault() 
If init IsNot Nothing Then 
    partId = init.PartId 
End If 

Oder:

Dim partToSearch as String = "Chair" 
Dim partId = parts.Where(Function(p) p.PartName=partToSearch).Select(Function(v) v.PartId).FirstOrDefault() 

Oder Sie Erstellen Sie ein Dictionary wie @the_lotus erwähnt:

Dim partIDsByName as Dictionary(Of String, Integer) 
partIDsByName = parts.ToDictionary(Function(k) k.PartName, Function(v) v.PartId) 

Dim partToSearch as String = "Chair" 
Dim partId = partIDsByName(partToSearch) 
Verwandte Themen