I have written a simple function to find the difference between 2 lists (list1 - list2)
Expand|Select|Wrap|Line Numbers
- Public Shared Function ListDifference(ByVal list1 As IList, ByVal list2 As IList) As IList
- For list2index As Integer = 0 To list2.Count - 1
- If (list1.Contains(list2(list2index))) Then
- list1.Remove(list2(list2index))
- End If
- Next
- Return list1
- End Function
Expand|Select|Wrap|Line Numbers
- Dim lstAvailableGroups As IList = Resources.ListDifference(_groupList, _currentUser.Groups)
_groupList contains:
Administrators_currentUser.Groups contains:
Payment Department
Management
HR Department
AdministratorsAfter executing the function
_groupList contains:
Payment Department_currentUser.Groups contains:
Management
HR Department
AdministratorsI am passing both lists by value. How is the function changing _groupList? Any help much appreciated.