Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Растяг № 3

Автор Тайльнемер, октября 12, 2014, 10:55

0 Пользователи и 1 гость просматривают эту тему.

Тайльнемер

Код с длинными строчками:


public static partial class RatioExtensions { #region Sum public static Ratio Sum(this IEnumerable<Ratio> source) { return source.Aggregate(Ratio.Zero, (p, q) => p + q); } public static Ratio Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, Ratio> selector) { return source.Select(selector).Sum(); } #endregion #region Product public static Ratio Product(this IEnumerable<Ratio> source) { return source.Aggregate(Ratio.Unit, (p, q) => p * q); } public static Ratio Product<TSource>(this IEnumerable<TSource> source, Func<TSource, Ratio> selector) { return source.Select(selector).Product(); } #endregion #region Average public static Ratio Average(this IEnumerable<Ratio> source) { if(source == null) throw new ArgumentNullException("source"); var sum = Ratio.Zero; int count = 0; foreach(var p in source) { sum += p; count++; } if(count > 0) return sum / count; throw new InvalidOperationException("Sequence contains no elements"); } public static Ratio Average<TSource>(this IEnumerable<TSource> source, Func<TSource, Ratio> selector) { return source.Select(selector).Average(); } public static Ratio? Average(this IEnumerable<Ratio?> source) { if(source == null) throw new ArgumentNullException("source"); var sum = Ratio.Zero; int count = 0; foreach(var p in source.OfType<Ratio>()) { sum += p; count++; } return count > 0 ? sum / count : (Ratio?) null; } public static Ratio? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, Ratio?> selector) { return source.Select(selector).Average(); } #endregion }

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр