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
あなたはいつでも拡張メソッドを追加できます。 'public static IOrderedEnumerable OrderedDistinct(this IEnumerable data){return data.Distinct()。OrderBy(x => x); } ' –
Maarten
' Distinct'操作で返されるリストには、最初に出現した元のアイテムのみが含まれ、順序はありません。したがって、あなたの期待する結果をあなたの例で期待する必要があります。 – hellowstone