2017-07-07 31 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)