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 替换为对象的 属性 名称)
您好。我目前有点难以在 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 替换为对象的 属性 名称)