2012-03-28 9 views
4

Ich habe ein Customer-Objekt, das eine Sammlung von ContactNumbers hat. Ist es mit LINQ möglich, eine Liste der Kunden zu erhalten, bei denen eine der Kontaktnummern = '123' ist?LINQ Where-Anweisung in der Sammlung

Public Class Customer 
    Public Overridable Property ContactNumbers As List(Of ContactNumber) 

End Class 

Public Class ContactNumber 

    <Required()> 
    Public Property ID As Integer 

    <Required()> 
    <StringLength(20)> 
    Public Property Number As String 

    Public Overridable Property Type As ContactNumberType 

    Public Property Primary As Boolean 

End Class 


Dim findnumber as String = '123' 
Dim customers = db.customers.tolist 

customers = customers.Where..... ? 

Antwort

8

Versuchen Sie, die folgende

customers = customers.Where(Function (x) x.ContactNumbers.Any(Function (y) y.Number = "123")) 

Die hier Trick die Funktion Any ist. Dies gibt True zurück, wenn eines der Elemente in der Auflistung mit dem Prädikat übereinstimmt. In diesem Fall y.Number = 123

+1

Verdammt, ich war nah dran! Danke! – Tom

Verwandte Themen