0

我正在尝试计算我的 C# 程序中列表的总数,我从班上的几个人那里得到了帮助,但我们似乎找不到问题,我的代码是,

        int totalB = 0;

        Cards.ForEach(delegate(ConsoleApplication1.Program.CreditCard Balance)
        {
            totalB= totalB + Balance;
        });

错误是此错误 1 ​​运算符“+”不能应用于“int”和“ConsoleApplication1.Program.CreditCard”类型的操作数

对此的任何帮助将不胜感激,因为我不知道,试图帮助我解决这个问题的人也不知道

4

2 回答 2

3

我猜你有一个像这样的课程:

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.


请注意,您还可以通过多种其他方式执行此操作:

  1. 使用 LINQ:

    int totalB = Cards.Sum(card => card.Balance);
    
  2. 使用 lambda 表达式而不是显式委托:

    int totalB = 0;
    
    Cards.Foreach(card => {totalB += card.Balance;});
    
  3. 使用foreach循环:

    int totalB = 0;
    
    foreach(CreditCard card in Cards)
        totalB += card.Balance;
    

(如果您不熟悉它,x += y则与 相同x = x + y。)

于 2013-08-17T13:40:54.150 回答
0

就获取列表的总和而言。它很简单(假设 Cards 是一个列表)

 Cards.Sum(x=>x.YourPropertyToSum);

你的错误:

错误是此错误 1 ​​运算符“+”不能应用于“int”和“ConsoleApplication1.Program.CreditCard”类型的操作数

您正在尝试使用 ConsoleApplication1.Program.CreditCard(这是什么)添加一个 int,这显然不是可以添加到 int 的类型。因此你得到的错误。

于 2013-08-17T13:34:04.403 回答