Author: jbevain
Date: 2008-01-22 06:41:57 -0500 (Tue, 22 Jan 2008)
New Revision: 93510
Modified:
trunk/mcs/class/System.Core/System.Linq/Enumerable.cs
Log:
checks
Modified: trunk/mcs/class/System.Core/System.Linq/Enumerable.cs
===================================================================
--- trunk/mcs/class/System.Core/System.Linq/Enumerable.cs 2008-01-22
11:34:55 UTC (rev 93509)
+++ trunk/mcs/class/System.Core/System.Linq/Enumerable.cs 2008-01-22
11:41:57 UTC (rev 93510)
@@ -1092,33 +1092,41 @@
public static int Max (this IEnumerable<int> source)
{
+ Check.Source (source);
+
return Iterate (source, int.MinValue, (a, b) => a > b);
}
public static long Max (this IEnumerable<long> source)
{
+ Check.Source (source);
+
return Iterate (source, long.MinValue, (a, b) => a > b);
}
public static double Max (this IEnumerable<double> source)
{
+ Check.Source (source);
+
return Iterate (source, double.MinValue, (a, b) => a >
b);
}
public static float Max (this IEnumerable<float> source)
{
+ Check.Source (source);
+
return Iterate (source, float.MinValue, (a, b) => a >
b);
}
public static decimal Max (this IEnumerable<decimal> source)
{
+ Check.Source (source);
+
return Iterate (source, decimal.MinValue, (a, b) => a >
b);
}
static T Iterate<T> (IEnumerable<T> source, T initValue,
Func<T, T, bool> selector)
{
- Check.SourceAndSelector (source, selector);
-
int counter = 0;
foreach (var element in source) {
if (selector (element, initValue))
@@ -1134,33 +1142,41 @@
public static int? Max (this IEnumerable<int?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, int.MinValue, (a, b) =>
a > b);
}
public static long? Max (this IEnumerable<long?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, long.MinValue, (a, b)
=> a > b);
}
public static double? Max (this IEnumerable<double?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, double.MinValue, (a, b)
=> a > b);
}
public static float? Max (this IEnumerable<float?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, float.MinValue, (a, b)
=> a > b);
}
public static decimal? Max (this IEnumerable<decimal?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, decimal.MinValue, (a,
b) => a > b);
}
static T? IterateNullable<T> (IEnumerable<T?> source, T
initValue, Func<T?, T?, bool> selector) where T : struct
{
- Check.SourceAndSelector (source, selector);
-
int counter = 0;
T? value = initValue;
foreach (var element in source) {
@@ -1212,6 +1228,8 @@
public static int Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, int> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, int.MinValue, (a, b) => {
var v = selector (a); return v > b ? v : b;
});
@@ -1219,6 +1237,8 @@
public static long Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, long> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, long.MinValue, (a, b) => {
var v = selector (a); return v > b ? v : b;
});
@@ -1226,6 +1246,8 @@
public static double Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, double> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, double.MinValue, (a, b) => {
var v = selector (a); return v > b ? v : b;
});
@@ -1233,6 +1255,8 @@
public static float Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, float> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, float.MinValue, (a, b) => {
var v = selector (a); return v > b ? v : b;
});
@@ -1240,6 +1264,8 @@
public static decimal Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, decimal> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, decimal.MinValue, (a, b) => {
var v = selector (a); return v > b ? v : b;
});
@@ -1247,8 +1273,6 @@
static U Iterate<T, U> (IEnumerable<T> source, U initValue,
Func<T, U, U> selector)
{
- Check.SourceAndSelector (source, selector);
-
int counter = 0;
foreach (var element in source) {
initValue = selector (element, initValue);
@@ -1263,8 +1287,6 @@
static U? IterateNullable<T, U> (IEnumerable<T> source, U
initialValue, Func<T, U?, U?> selector) where U : struct
{
- Check.SourceAndSelector (source, selector);
-
int counter = 0;
U? value = initialValue;
foreach (var element in source) {
@@ -1283,6 +1305,8 @@
public static int? Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, int?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, int.MinValue, (a, b) =>
{
var v = selector (a); return v > b ? v : b;
});
@@ -1290,6 +1314,8 @@
public static long? Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, long?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, long.MinValue, (a, b)
=> {
var v = selector (a); return v > b ? v : b;
});
@@ -1297,6 +1323,8 @@
public static double? Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, double?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, double.MinValue, (a, b)
=> {
var v = selector (a); return v > b ? v : b;
});
@@ -1304,6 +1332,8 @@
public static float? Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, float?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, float.MinValue, (a, b)
=> {
var v = selector (a); return v > b ? v : b;
});
@@ -1311,13 +1341,14 @@
public static decimal? Max<TSource> (this IEnumerable<TSource>
source, Func<TSource, decimal?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, decimal.MinValue, (a,
b) => {
var v = selector (a); return v > b ? v : b;
});
}
- public static TResult Max<TSource, TResult> (this
IEnumerable<TSource> source,
- Func<TSource, TResult> selector)
+ public static TResult Max<TSource, TResult> (this
IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
Check.SourceAndSelector (source, selector);
@@ -1356,51 +1387,71 @@
public static int Min (this IEnumerable<int> source)
{
+ Check.Source (source);
+
return Iterate (source, int.MaxValue, (a, b) => a < b);
}
public static long Min (this IEnumerable<long> source)
{
+ Check.Source (source);
+
return Iterate (source, long.MaxValue, (a, b) => a < b);
}
public static double Min (this IEnumerable<double> source)
{
+ Check.Source (source);
+
return Iterate (source, double.MaxValue, (a, b) => a <
b);
}
public static float Min (this IEnumerable<float> source)
{
+ Check.Source (source);
+
return Iterate (source, float.MaxValue, (a, b) => a <
b);
}
public static decimal Min (this IEnumerable<decimal> source)
{
+ Check.Source (source);
+
return Iterate (source, decimal.MaxValue, (a, b) => a <
b);
}
public static int? Min (this IEnumerable<int?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, int.MaxValue, (a, b) =>
a < b);
}
public static long? Min (this IEnumerable<long?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, long.MaxValue, (a, b)
=> a < b);
}
public static double? Min (this IEnumerable<double?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, double.MaxValue, (a, b)
=> a < b);
}
public static float? Min (this IEnumerable<float?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, float.MaxValue, (a, b)
=> a < b);
}
public static decimal? Min (this IEnumerable<decimal?> source)
{
+ Check.Source (source);
+
return IterateNullable (source, decimal.MaxValue, (a,
b) => a < b);
}
@@ -1438,6 +1489,8 @@
public static int Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, int> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, int.MaxValue, (a, b) => {
var v = selector (a); return v < b ? v : b;
});
@@ -1445,6 +1498,8 @@
public static long Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, long> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, long.MaxValue, (a, b) => {
var v = selector (a); return v < b ? v : b;
});
@@ -1452,6 +1507,8 @@
public static double Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, double> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, double.MaxValue, (a, b) => {
var v = selector (a); return v < b ? v : b;
});
@@ -1459,6 +1516,8 @@
public static float Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, float> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, float.MaxValue, (a, b) => {
var v = selector (a); return v < b ? v : b;
});
@@ -1466,6 +1525,8 @@
public static decimal Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, decimal> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return Iterate (source, decimal.MaxValue, (a, b) => {
var v = selector (a); return v < b ? v : b;
});
@@ -1473,6 +1534,8 @@
public static int? Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, int?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, int.MaxValue, (a, b) =>
{
var v = selector (a); return v < b ? v : b;
});
@@ -1480,6 +1543,8 @@
public static long? Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, long?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, long.MaxValue, (a, b)
=> {
var v = selector (a); return v < b ? v : b;
});
@@ -1487,6 +1552,8 @@
public static double? Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, float?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, float.MaxValue, (a, b)
=> {
var v = selector (a); return v < b ? v : b;
});
@@ -1494,6 +1561,8 @@
public static double? Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, double?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, double.MaxValue, (a, b)
=> {
var v = selector (a); return v < b ? v : b;
});
@@ -1501,13 +1570,14 @@
public static decimal? Min<TSource> (this IEnumerable<TSource>
source, Func<TSource, decimal?> selector)
{
+ Check.SourceAndSelector (source, selector);
+
return IterateNullable (source, decimal.MaxValue, (a,
b) => {
var v = selector (a); return v < b ? v : b;
});
}
- public static TResult Min<TSource, TResult> (this
IEnumerable<TSource> source,
- Func<TSource, TResult> selector)
+ public static TResult Min<TSource, TResult> (this
IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
Check.SourceAndSelector (source, selector);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches