From c003ad0d9893d9d178a403fc5eacf53926f0ed5d Mon Sep 17 00:00:00 2001 From: Jon Hanna Date: Wed, 4 Jan 2017 15:45:48 +0000 Subject: [PATCH] Optimise decimal predicate sum --- Src/Newtonsoft.Json/Utilities/LinqBridge.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/Src/Newtonsoft.Json/Utilities/LinqBridge.cs b/Src/Newtonsoft.Json/Utilities/LinqBridge.cs index 378fd1dc..15beffe7 100644 --- a/Src/Newtonsoft.Json/Utilities/LinqBridge.cs +++ b/Src/Newtonsoft.Json/Utilities/LinqBridge.cs @@ -1248,7 +1248,7 @@ namespace Newtonsoft.Json.Utilities.LinqBridge { foreach (TSource item in source) { - if (predicate(item)) + if (predicate(item)) { return true; } @@ -2579,7 +2579,16 @@ namespace Newtonsoft.Json.Utilities.LinqBridge this IEnumerable source, Func selector) { - return source.Select(selector).Sum(); + CheckNotNull(source, "source"); + CheckNotNull(selector, "selector"); + + decimal sum = 0; + foreach (TSource item in source) + { + sum += selector(item); + } + + return sum; } ///