(文字列の)リストがあります。例:{"C1"、 "C12"、 "C10"、 "C1"、 "C6"、 "C22"、 "C1"、"C6"}。重複のリストを表示する関数を作成しようとしています:リスト内の{"C1"、"C6"}。各重複は1回だけリストされます。私が書いた関数は、私に何も返しません。理由がわかりません。任意のヘルプまたは代替アプローチをいただければ幸いです。参考までに、C#でも非常によく似た質問がありますが、LINQにまだ慣れていないため、その構文をVB.netに変換する方法がわかりません。ここにあります:LINQを使用してリストから重複アイテムを取得するにはどうすればよいですか?
''' <summary>
''' Given a List(Of String), returns a list of items that are duplicated in the list.
''' Each duplicate returned is unique.
''' </summary>
''' <param name="Set1"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function GetDuplicateItems(ByVal Set1 As List(Of String)) As List(Of String)
Dim DistinctItems As IEnumerable(Of String)
'Dim DistinctResults As New List(Of String)
Dim DuplicateItems As IEnumerable(Of String)
Dim ItemsToReturn As New List(Of String)
'Get a set of unique items in the list
DistinctItems = Set1.Select(Function(x) x).Distinct()
'Do I need to enumerate the result in order to force the thing to execute?
'See remarks section of http://msdn.microsoft.com/en-us/library/bb300779.aspx
'For Each Item As String In DistinctItems
' DistinctResults.Add(Item)
'Next
'Do a set subtraction (Set1 - UniqueItems)
DuplicateItems = Set1.Except(DistinctItems)
For Each Item As String In DuplicateItems
ItemsToReturn.Add(Item)
Next
Return ItemsToReturn
End Function