From f5c64fdd09c44eb27527a235c69688fac6a69bd1 Mon Sep 17 00:00:00 2001 From: Jon Hanna Date: Wed, 4 Jan 2017 16:20:58 +0000 Subject: [PATCH] Optimise linqbridge Select --- Src/Newtonsoft.Json/Utilities/LinqBridge.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Src/Newtonsoft.Json/Utilities/LinqBridge.cs b/Src/Newtonsoft.Json/Utilities/LinqBridge.cs index 786a547b..d151069f 100644 --- a/Src/Newtonsoft.Json/Utilities/LinqBridge.cs +++ b/Src/Newtonsoft.Json/Utilities/LinqBridge.cs @@ -205,9 +205,18 @@ namespace Newtonsoft.Json.Utilities.LinqBridge this IEnumerable source, Func selector) { + CheckNotNull(source, "source"); CheckNotNull(selector, "selector"); - return source.Select((item, i) => selector(item)); + return SelectYield(source, selector); + } + + private static IEnumerable SelectYield( + IEnumerable source, + Func selector) + { + foreach (var item in source) + yield return selector(item); } ///