I'm going to have to move away from the Find(), .FirstOrDefault() etc. and replace it with loops unless someone can explain how to deal with lists that will not return a value?
Public Class Form1
    Public Class TestClass
        Public Property item1 As String
        Public Property item2 As String
    End Class
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim myLst As New List(Of TestClass)
        myLst.Add(New TestClass With {.item1 = "A", .item2 = "B"})
        myLst.Add(New TestClass With {.item1 = "C", .item2 = "D"})
        Debug.WriteLine(myLst.Find(Function(n) n.item1 = "X").item1) ' nullreferenceexception, what?
    End Sub
End Class
 
     
    