Наткнулся на шикарную статью от Alois Kraus:
A Single Line Performance Error
/// <summary>
/// Logical and of a list of predicates.
/// </summary>
public static Predicate<T> And(params Predicate<T>[] ands)
{
// return a new delegate which checks if all delegates in the array did return
// true for a given item
return item => ands.All(x => x(item));
}
Казалось бы, что тут может пойти не так?
О том, как на ровном месте получить 2.5 гб аллокаций, замедлить код в 10 раз, а затем всё геройски разрулить, если профайлера нет под рукой — тынц по ссылке выше