diff options
author | Marek Safar <marek.safar@gmail.com> | 2009-02-24 01:34:17 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2009-02-24 01:34:17 +0300 |
commit | d93ce802213308393c84787543b85ad124a6ad0d (patch) | |
tree | 7af41c5165d540de7c777049295cb4ccff52933f /mcs/class/System.Core/System.Linq/Enumerable.cs | |
parent | d7e9cfe1b8ac18f0169d740c92e2822835daf1c0 (diff) |
2009-02-23 Marek Safar <marek.safar@gmail.com>
* Enumerable.cs (IterateNullable): Compare unwrapped values.
svn path=/trunk/mcs/; revision=127820
Diffstat (limited to 'mcs/class/System.Core/System.Linq/Enumerable.cs')
-rw-r--r-- | mcs/class/System.Core/System.Linq/Enumerable.cs | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/mcs/class/System.Core/System.Linq/Enumerable.cs b/mcs/class/System.Core/System.Linq/Enumerable.cs index 074d4480cbf..e2c6912c244 100644 --- a/mcs/class/System.Core/System.Linq/Enumerable.cs +++ b/mcs/class/System.Core/System.Linq/Enumerable.cs @@ -1052,38 +1052,38 @@ namespace System.Linq { Check.Source (source); - return IterateNullable (source, (a, b) => a > b); + return IterateNullable (source, (a, b) => Math.Max (a, b)); } public static long? Max (this IEnumerable<long?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a > b); + return IterateNullable (source, (a, b) => Math.Max (a, b)); } public static double? Max (this IEnumerable<double?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a > b); + return IterateNullable (source, (a, b) => Math.Max (a, b)); } public static float? Max (this IEnumerable<float?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a > b); + return IterateNullable (source, (a, b) => Math.Max (a, b)); } public static decimal? Max (this IEnumerable<decimal?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a > b); + return IterateNullable (source, (a, b) => Math.Max (a, b)); } - static T? IterateNullable<T> (IEnumerable<T?> source, Func<T?, T?, bool> selector) where T : struct + static T? IterateNullable<T> (IEnumerable<T?> source, Func<T, T, T> selector) where T : struct { bool empty = true; T? value = null; @@ -1093,8 +1093,8 @@ namespace System.Linq if (!value.HasValue) value = element.Value; - else if (selector (element.Value, value)) - value = element; + else + value = selector (element.Value, value.Value); empty = false; } @@ -1321,35 +1321,35 @@ namespace System.Linq { Check.Source (source); - return IterateNullable (source, (a, b) => a < b); + return IterateNullable (source, (a, b) => Math.Min (a, b)); } public static long? Min (this IEnumerable<long?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a < b); + return IterateNullable (source, (a, b) => Math.Min (a, b)); } public static double? Min (this IEnumerable<double?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a < b); + return IterateNullable (source, (a, b) => Math.Min (a, b)); } public static float? Min (this IEnumerable<float?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a < b); + return IterateNullable (source, (a, b) => Math.Min (a, b)); } public static decimal? Min (this IEnumerable<decimal?> source) { Check.Source (source); - return IterateNullable (source, (a, b) => a < b); + return IterateNullable (source, (a, b) => Math.Min (a, b)); } public static TSource Min<TSource> (this IEnumerable<TSource> source) |