Чтобы добавить к принятому ответу, действительно, вы можете использовать это:
int totalLength = files.AllKeys.Select(k => files[k]).Sum(f => f.ContentLength);
Причина, по которой вам не нужно перечислять в своем коде, заключается в том, что метод расширения Sum делает это за вас. Если вы запустите его через Reflector, вы в конечном итоге найдете этот фрагмент кода:
public static int Sum(this IEnumerable<int> source)
{
if (source == null)
{
throw Error.ArgumentNull("source");
}
int num = 0;
foreach (int num2 in source)
{
num += num2;
}
return num;
}
Как видите, на самом деле это не ракетостроение. Это почти так же, как ваш оригинальный код даже!
Примечание. Если вы хотите найти этот код, откройте System.Core, перейдите в пространство имен System.Linq и откройте определение класса Enumerable. Вы найдете эти методы здесь (среди других мест, я думаю).