Manera más eficiente de construir suma que para bucle

Tengo dos listas de igual tamaño. Ambos contienen números. Se genera la primera lista y la segunda es estática. Como tengo muchas de las listas generadas, quiero saber cuál es la mejor. Para mí, la mejor lista es la que es más igual a la referencia. Por lo tanto calculo la diferencia en cada posición y la sumo.

Aquí está el código:

/// <summary>
/// Calculates a measure based on that the quality of a match can be evaluated
/// </summary>
/// <param name="Combination"></param>
/// <param name="histDates"></param>
/// <returns>fitting value</returns>
private static decimal getMatchFitting(IList<decimal> combination, IList<MyClass> histDates)
{
    decimal fitting = 0;
    if (combination.Count != histDates.Count)
    {
        return decimal.MaxValue;
    }

    //loop through all values, compare and add up the result
    for (int i = 0; i < combination.Count; i++)
    {
        fitting += Math.Abs(combination[i] - histDates[i].Value);
    }
    return fitting;
}

¿Existe posiblemente una forma más elegante pero más importante y más eficiente de obtener la suma deseada?

¡Gracias por adelantado!

Respuestas a la pregunta(4)

Su respuesta a la pregunta