Visual Basic 在对象列表中查找字符串

Visual Basic Find String in List Of Object

您好。我目前有点难以在 Object (int,string)

的列表中找到一个字符串

我想检查字符串是否已包含在列表中 - 如果没有则添加它。

常规 <List>.Contains() 不起作用,因为我在插入新对象之前对其进行了初始化。

这是我的代码:

Dim command = New SqlCommand(query, connection)
        Dim reader = command.ExecuteReader()
        While reader.Read

            Dim projID = reader.Item("DB_ID")
            Dim projName = reader.Item("Project")
            Dim proj = New KMProject(projName, projID)
            projList.Add(proj)

        End While
        reader.Close()
 =============================== ProjList having some items already =====================================
        query = ...

            command = New SqlCommand(query, connection)
            reader = command.ExecuteReader()
            While reader.Read

            Dim projID = reader.Item("DB_ID")
            Dim projName = reader.Item("Project")
            Dim proj = New KMProject(projName, projID)
===============Below this section im stuck while verifying if this String is already in the List ===================================
            For Each p In projList
                If projList.Contains() Then
                Else

                    projList.Add(proj)
                End If
            Next

在我看来,最好的选择是 LINQ:

If Not progList.Any(Function(x) x.Name = "Your string to check") Then
    /*Add the thing*/
End If

别忘了您必须添加 Imports 语句:

Imports System.Linq;

您可以使用 Linq...

For Each p in projlist
    If Not projlist.Any(Function(pl) (pl.ID = proj.ID)) Then prodlist.Add(proj)
Next

(将 ID 替换为对象的 属性 名称)