當我在下圖中應用DISTINCT.ToList()
時,將從結果列表中刪除哪些項目? 是否將第一個條目(即第一個添加到列表中)重複保存在要返回的新列表中?如果沒有,是否有辦法讓DISTINCT.ToList()
保留新列表中的重複項中的第一個條目被返回?在使用List.Distinct()時返回項目在結果列表中的順序
Dim values As List(Of Integer) = New List(Of Integer)
values.Add(1)
values.Add(5)
values.Add(2)
values.Add(3)
values.Add(2)
values.Add(3)
values.Add(4)
values.Add(2)
values.Add(2)
values.Add(3)
values.Add(3)
values.Add(3)
Dim items As List(Of Integer) = values.Distinct().ToList
' Display result.
For Each i As Integer In items
Console.WriteLine(i)
Next
Expected output:
1
5
2
3
4
這MSDN頁面上顯示 「鮮明(中TSource)(IEnumerable的(中TSource))方法返回一個不包含重複值無序序列」。有沒有辦法解決這個問題?
實際上,沒有項目將從列表中刪除,包含不同項目的新列表將被返回。 – hellowstone
您可以隨時添加一個擴展方法,你自己,做爲了它:'公共靜態IOrderedEnumerable OrderedDistinct(這IEnumerable的數據){返回data.Distinct()排序依據(X => X)。 }' –
Maarten
用'Distinct'操作返回的列表僅包含第一個發生的原始項目,並且沒有排序。所以你必須期望在你的例子中你的預期輸出。 – hellowstone