Think about it - this is a much more elegant way to achieve what you are trying to do - and that is removing the items from your source list that appear in your target list. Consider the following lists:
Dim OriginalList As New List(Of String)(New String() {"a", "b", "c", "d"})
Dim TargetList As New List(Of String)(New String() {"a", "b", "c"})
And this is how I will remove all the elements from the original that appear in the target ...
OriginalList.RemoveAll(Function(OriginalItem) TargetList.Contains(OriginalItem))
What will be written in C #:
OriginalList.RemoveAll(OriginalItem => TargetList.Contains(OriginalItem));
, .
: . , set A B, B, A. , B, - , t - B. , B.