From 86e22ddf241e34738ae26abd7bbe5336b7b99788 Mon Sep 17 00:00:00 2001 From: Jakub Florkowski <42434498+kubaflo@users.noreply.github.com> Date: Mon, 22 Apr 2024 17:48:24 +0200 Subject: [PATCH] IndexOf() stackOverflow fix (#20083) (#21965) * Update EnumerableExtensions.cs * Update EnumerableExtensions.cs --- src/Core/src/Extensions/EnumerableExtensions.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Core/src/Extensions/EnumerableExtensions.cs b/src/Core/src/Extensions/EnumerableExtensions.cs index 31d3b1b9901e..f073930c694f 100644 --- a/src/Core/src/Extensions/EnumerableExtensions.cs +++ b/src/Core/src/Extensions/EnumerableExtensions.cs @@ -147,9 +147,16 @@ public static int IndexOf(this IEnumerable enumerable, Func predi throw new ArgumentNullException(nameof(enumerable)); } - if (enumerable is IList list) + if (enumerable is List list) + { + var listPredicate = new Predicate(predicate); + return list.FindIndex(listPredicate); + } + + if (enumerable is T[] array) { - return list.IndexOf(predicate); + var arrayPredicate = new Predicate(predicate); + return Array.FindIndex(array, arrayPredicate); } var i = 0;