Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2009-02-24 01:34:17 +0300
committerMarek Safar <marek.safar@gmail.com>2009-02-24 01:34:17 +0300
commitd93ce802213308393c84787543b85ad124a6ad0d (patch)
tree7af41c5165d540de7c777049295cb4ccff52933f /mcs/class/System.Core/System.Linq/Enumerable.cs
parentd7e9cfe1b8ac18f0169d740c92e2822835daf1c0 (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.cs26
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)