Linq, метод Sum
для nullable-типов:
public static int? Sum(this IEnumerable<int?> source) {
if (source == null) throw Error.ArgumentNull("source");
int sum = 0;
checked {
foreach (int? v in source) {
if (v != null) sum += v.GetValueOrDefault();
}
}
return sum;
}
В чём смысл конструкции
if (v != null) sum += v.GetValueOrDefault();
насколько я понимаю, можно было бы без изменения результата написать просто
sum += v.GetValueOrDefault();
Так зачем же if
?
С точки зрения именно результирующего значения действительно ничего не изменится, однако чем больше null
-значений в представленном source
, тем указанный метод будет работать быстрее.
Недавно сталкнулся с задачей, в одном элементе которой требовалось преобразование
Здравствуйте! Большую часть времени я пишу на С#, но мне всегда не хватало в этом прекрасном языке макросов (однажды попробовав макросы LISP, трудно...
При передаче большого объема данных в WCF службу, передаваемое приложение начинает безмерно потреблять ОЗУ 240>364>478>797 Мб и тд