为什么它试图转换?c#
我有两个“foreach”循环,它们抛出错误,告诉我无法将Student.FoodItem转换为double。我很困惑我做错了什么,下面是循环为什么它试图转换?c#,c#,foreach,double,C#,Foreach,Double,我有两个“foreach”循环,它们抛出错误,告诉我无法将Student.FoodItem转换为double。我很困惑我做错了什么,下面是循环 foreach (double cost in Order.OrderedFood) { totalFood += Food.Cost; } foreach (double cost in Order.OrderedDrink) { totalDrink
foreach (double cost in Order.OrderedFood)
{
totalFood += Food.Cost;
}
foreach (double cost in Order.OrderedDrink)
{
totalDrink += Drink.Cost;
}
double totalFood = 0.0;
double totalDrink = 0.0;
因为您已经将迭代器变量声明为
double
。你的意思可能是这样的:
foreach (FoodItem food in Order.OrderedFood)
{
totalFood += food.Cost;
}
您的第一个循环应该类似于:
foreach (FoodItem foodItem in Order.OrderedFood)
{
totalFood += foodItem.Cost;
}
您正在循环浏览一个FoodItems集合,而不是成本集合。这可以使用LINQ更优雅地完成:
totalFood = Order.OrderedFood.Sum(x => x.Cost);
totalDrink = Order.OrderedDrink.Sum(x => x.Cost);
totalDrink的类型是什么?为什么在不使用集合值的情况下迭代集合?此代码中的食物项目在哪里?我建议在完成课堂作业之前先研究一下。