From 1aa701ab8c275efbc24041232de38ba2edc7efe8 Mon Sep 17 00:00:00 2001 From: neon-sunset Date: Tue, 16 Jan 2024 19:41:52 +0200 Subject: [PATCH] Use .TryGetSpan on sequences instead of type checks to forward sequence comparison for arrays and lists --- src/libraries/System.Linq/src/System/Linq/SequenceEqual.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Linq/src/System/Linq/SequenceEqual.cs b/src/libraries/System.Linq/src/System/Linq/SequenceEqual.cs index d1d6dc1586b0f5..ff4c32200a5c34 100644 --- a/src/libraries/System.Linq/src/System/Linq/SequenceEqual.cs +++ b/src/libraries/System.Linq/src/System/Linq/SequenceEqual.cs @@ -24,9 +24,9 @@ public static bool SequenceEqual(this IEnumerable first, IEnum if (first is ICollection firstCol && second is ICollection secondCol) { - if (first is TSource[] firstArray && second is TSource[] secondArray) + if (first.TryGetSpan(out ReadOnlySpan firstSpan) && second.TryGetSpan(out ReadOnlySpan secondSpan)) { - return ((ReadOnlySpan)firstArray).SequenceEqual(secondArray, comparer); + return firstSpan.SequenceEqual(secondSpan, comparer); } if (firstCol.Count != secondCol.Count)