diff --git a/src/libraries/System.Linq/src/System/Linq/OrderedEnumerable.SpeedOpt.cs b/src/libraries/System.Linq/src/System/Linq/OrderedEnumerable.SpeedOpt.cs index 57f70b75f3ac89..e69eb734ea1425 100644 --- a/src/libraries/System.Linq/src/System/Linq/OrderedEnumerable.SpeedOpt.cs +++ b/src/libraries/System.Linq/src/System/Linq/OrderedEnumerable.SpeedOpt.cs @@ -15,7 +15,7 @@ private abstract partial class OrderedIterator public override TElement[] ToArray() { TElement[] buffer = _source.ToArray(); - if (buffer.Length == 0) + if (buffer.Length <= 1) { return buffer; } @@ -29,11 +29,15 @@ public override List ToList() { TElement[] buffer = _source.ToArray(); - List list = new(); - if (buffer.Length > 0) + List list = new(buffer.Length); + if (buffer.Length >= 2) { Fill(buffer, SetCountAndGetSpan(list, buffer.Length)); } + else if (buffer.Length == 1) + { + list.Add(buffer[0]); + } return list; }