Quantcast
Channel: .NET Framework Class Libraries forum
Viewing all articles
Browse latest Browse all 8156

Is the declaration for Average in the Enumeralble class a bug?

$
0
0

Hi,

We noticed a difference between the declarations of the Sum and Average in the Enumerable Class. We think it is a bug.

Here's the declaration for the 'Sum':

		public static decimal? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
		public static decimal Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
		public static double? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
		public static double Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
		public static float? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
		public static float Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
		public static int? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
		public static int Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
		public static long? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
		public static long Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);

And here's the declaration for the 'Average':

		public static decimal? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
		public static decimal Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
		public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
		public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
		public static float? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
		public static float Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
		public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
		public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
		public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
		public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);

Notice that for 'Average' the overloads for int, int?, long and long? all return a Double whereas the 'Sum' return they return an int, int?, long and long?

Regards
Paul


Take a look at my blog: http://www.sinnema.ch


Viewing all articles
Browse latest Browse all 8156

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>