From 3934503245889082d762130adfefb5f806358176 Mon Sep 17 00:00:00 2001 From: Aaron Robinson Date: Sat, 25 Nov 2023 05:19:11 -0600 Subject: [PATCH] Replace Enumerable.HashSetToList with List constructor --- .../src/System/Linq/Distinct.SpeedOpt.cs | 2 +- .../src/System/Linq/ToCollection.cs | 22 ------------------- .../src/System/Linq/Union.SpeedOpt.cs | 2 +- 3 files changed, 2 insertions(+), 24 deletions(-) diff --git a/src/libraries/System.Linq/src/System/Linq/Distinct.SpeedOpt.cs b/src/libraries/System.Linq/src/System/Linq/Distinct.SpeedOpt.cs index 2e51149fe9c1f2..70e96b7ed68fac 100644 --- a/src/libraries/System.Linq/src/System/Linq/Distinct.SpeedOpt.cs +++ b/src/libraries/System.Linq/src/System/Linq/Distinct.SpeedOpt.cs @@ -11,7 +11,7 @@ private sealed partial class DistinctIterator : IIListProvider { public TSource[] ToArray() => Enumerable.HashSetToArray(new HashSet(_source, _comparer)); - public List ToList() => Enumerable.HashSetToList(new HashSet(_source, _comparer)); + public List ToList() => new List(new HashSet(_source, _comparer)); public int GetCount(bool onlyIfCheap) => onlyIfCheap ? -1 : new HashSet(_source, _comparer).Count; } diff --git a/src/libraries/System.Linq/src/System/Linq/ToCollection.cs b/src/libraries/System.Linq/src/System/Linq/ToCollection.cs index aaf9b86dc93a54..de145c6dccfb19 100644 --- a/src/libraries/System.Linq/src/System/Linq/ToCollection.cs +++ b/src/libraries/System.Linq/src/System/Linq/ToCollection.cs @@ -253,27 +253,5 @@ private static TSource[] HashSetToArray(HashSet set) set.CopyTo(result); return result; } - - private static List HashSetToList(HashSet set) - { - int count = set.Count; - - var result = new List(count); - if (count > 0) - { - Span span = SetCountAndGetSpan(result, count); - - int index = 0; - foreach (TSource item in set) - { - span[index] = item; - ++index; - } - - Debug.Assert(index == span.Length, "All list elements were not initialized."); - } - - return result; - } } } diff --git a/src/libraries/System.Linq/src/System/Linq/Union.SpeedOpt.cs b/src/libraries/System.Linq/src/System/Linq/Union.SpeedOpt.cs index cedfa899762ea9..6acf199e665b2a 100644 --- a/src/libraries/System.Linq/src/System/Linq/Union.SpeedOpt.cs +++ b/src/libraries/System.Linq/src/System/Linq/Union.SpeedOpt.cs @@ -26,7 +26,7 @@ private HashSet FillSet() public TSource[] ToArray() => Enumerable.HashSetToArray(FillSet()); - public List ToList() => Enumerable.HashSetToList(FillSet()); + public List ToList() => new List(FillSet()); public int GetCount(bool onlyIfCheap) => onlyIfCheap ? -1 : FillSet().Count; }