Como passar uma matriz de expressão OrderBy para um método?

Estou tentando aprimorar meu repositório para que ele seja o responsável pelo pedido. Eu apliquei a resposta deessa questão e no que diz respeito ao repositório, tenho certeza de que isso foi feito.

O problema que estou enfrentando é que não tenho certeza de como agora passar uma matriz para os métodos no repositório. O compilador continua gritando comigo sobre os delegados. Na questão vinculada acima, o autor está essencialmente fazendo o que eu quero, portanto deve ser possível.

Aqui está o meu código de repositório:

public virtual IList<TEntity> SelectOrderedList(
    Expression<Func<TEntity, bool>>[] Orderers,
    bool Ascending = true) {
    IOrderedQueryable<TEntity> TemporaryQueryable = null;

    foreach (Expression<Func<TEntity, bool>> Orderer in Orderers) {
        if (TemporaryQueryable == null) {
            TemporaryQueryable = (Ascending ? this.ObjectSet.OrderBy(Orderer) : this.ObjectSet.OrderByDescending(Orderer));
        } else {
            TemporaryQueryable = (Ascending ? TemporaryQueryable.ThenBy(Orderer) : TemporaryQueryable.ThenByDescending(Orderer));
        };
    };

    return TemporaryQueryable.ToList();
}

Em uma nota lateral, não tenho 100% de certeza de que devo usarExpression<Func<TEntity, bool>>. Por alguma razão, tenho a sensação de que deveria serExpression<Func<TEntity, int>>, mas não tenho muita certeza.

De qualquer forma, eu realmente aprecio isso se alguém puder me mostrar como realmente chamar isso. Pontos de bônus e amor, se você puder fazê-lo funcionar como umparams argumento.

questionAnswers(1)

yourAnswerToTheQuestion