C#操作数错误
本文关键字:错误 操作数 | 更新日期: 2023-09-27 18:28:04
我正在尝试计算C#程序中列表的总数,我得到了班上几个人的帮助,但我们似乎找不到问题,我的代码是
int totalB = 0;
Cards.ForEach(delegate(ConsoleApplication1.Program.CreditCard Balance)
{
totalB= totalB + Balance;
});
错误是此错误1运算符"+"不能应用于类型为"int"answers"ConsoleApplication1.Program.CreditCard"的操作数
任何帮助都将不胜感激,因为我不知道,试图帮助我解决这个问题的人也不知道。
我猜你有一个类似于的类
partial class CreditCard
{
public int Balance {get; set;}
}
因此,明确地说,按照你所拥有的,你最有可能想要的:
int totalB = 0;
Cards.ForEach(delegate(ConsoleApplication1.Program.CreditCard card)
{
totalB = totalB + card.Balance;
});
这将迭代Cards
集合中的每个项,并将Balance
属性的值添加到totalB
。注意,我已经调用了委托中的变量card
,以进一步说明正在发生的事情——将为集合中的每个项调用一次委托。在内部,您可以选择Balance
属性并将其添加到totalB
中。
请注意,您也可以通过多种其他方式做到这一点:
使用LINQ:
int totalB = Cards.Sum(card => card.Balance);
使用lambda表达式而不是显式委托:
int totalB = 0; Cards.Foreach(card => {totalB += card.Balance;});
使用
foreach
循环:int totalB = 0; foreach(CreditCard card in Cards) totalB += card.Balance;
(如果您不熟悉,x += y
与x = x + y
相同。)
Cards.Sum(x=>x.YourPropertyToSum);
您的错误:
错误是此错误1运算符"+"不能应用于类型为"int"answers"ConsoleApplication1.Program.CreditCard"的操作数
您正试图用ConsoleApplication1.Program.CreditCard添加一个int(这是什么),它显然不是一个可以添加到int的类型。因此出现了错误。