2017-07-07 21 views
-1

在向我的列表(Of clsUser)添加项目之前,我检查是否没有在我的列表中存在具有相同GUID的clsUser。列表 - 仅在GUID不存在时插入

目前我检查了所有脑干这样的:

Public Function GUIDExists(ByRef uList As List (Of clsUser), ByVal uGUID As String) As Boolean 

    For Each nItem As clsUser In uList 
     If nItem.GUID = uGUID Then 
      Return True 
     End If 
    Next 

    Return False 

End Function 

我非常想简化它,这个检查添加到列表(中clsUser),这样我就不用写相同的代码一遍又一遍地。

有些人喜欢MyList.AddIfGUIDDoesntExists(nNewUser)

这可能吗? 如果是的话,有人可以告诉我这将如何做?

+1

列表(Of T)已拥有了一个contains()方法建立在 – user6144226

+0

uList并不需要是为ByRef。 – jmoreno

回答

2
Imports System.Runtime.CompilerServices  

Public Module ExtensionMethods 
    <Extension()> 
    Public Sub AddIfGUIDDoesntExists(ByRef inputList As List(Of clsUser), _ 
      ByVal item As clsUser) 
     Dim contains As Boolean = False 
     For Each i As clsUser In inputList 
      If (i.GUID = item.GUID) Then 
       contains = True 
       Exit For 
      End If 
     Next 
     If Not contains 
      inputList.Add(item) 
     End If 
    End Sub 
End Module 

用法:

MyList.AddIfGUIDDoesntExists(nNewUser)