Вот решение LINQ:
Dictionary<int, Dictionary<string, double>> dict = new Dictionary<int, Dictionary<string, double>>() {
{0,new Dictionary<string, double> { { "eat",0.15 }, { "food", 0.16 } } },
{1,new Dictionary<string, double> { { "eat",0.32 }, { "food", 0.2 } } }
};
double eat = dict.Values.Select(x => x["eat"]).Aggregate((x, y) => x * y);
double food = dict.Values.Select(x => x["food"]).Aggregate((x, y) => x * y);
double result = eat + food;
EDIT
Вот более компактное и универсальное решение:
var result = dict.SelectMany(x => x.Value)
.GroupBy(x => x.Key, y => y.Value, (Key, Value) => new { Value })
.Sum(x => x.Value.Aggregate((a, b) => a * b));
результат = 0.08
ДЕМО ЗДЕСЬ