C# 计算财产的总和

C# 计算财产的总和,c#,C#,我试图计算名为Total到GrandTotal的属性名的总和。我想让它做的是计算所有Total的总和,我就是这样尝试的: public class ItemProperties { public int Item { get; set; } public string Description { get; set; } public int Quantity { get; set; }

我试图计算名为
Total
GrandTotal
的属性名的总和。我想让它做的是计算所有
Total
的总和,我就是这样尝试的:

public class ItemProperties
        {
            public int Item { get; set; }
            public string Description { get; set; }
            public int Quantity { get; set; }
            public int UnitPrice { get; set; }
            public int Tax { get; set; }
            public int TotalTax { get { return ((Quantity * UnitPrice) * Tax) /100 ; } }
            public int Total { get { return (Quantity * UnitPrice) + TotalTax; } }

            public int GrandTotal
            {
                get
                {
                    foreach (var l in Total) //Error
                        l += Total;          // Error
                    return l;                //Error
                }
            }
        } 
ItemProperties
使用
Add()
方法添加了两次,如下所示: (因此,
Total
在每次添加时具有不同的值)

不要担心
变量,它们不相关。。
我唯一想要的是,
GrandTotal
计算所有Total属性的总和

不能对不可枚举的对象执行
foreach
,并且
Total
属性是
int
,而不是IEnumerable

您的
GrandTotal
属性可能应该在包含
ItemProperties
集合的类中,您的代码看起来与此类似:

public ItemProperties[] MyItems { get; set; }

public int GrandTotal 
{
    get 
    {
        var total = 0;
        foreach (var item in MyItems)
            total += item.Total;

        return total;
    }
}
或者,如果您想使用LINQ:

public List<ItemProperties> MyItems { get; set; }

public int GrandTotal 
{
    get {  return MyItems.Sum(item => item.Total); }
}
public List MyItems{get;set;}
公共整数总计
{
获取{return MyItems.Sum(item=>item.Total);}
}

请注意,我保持了这个简单,没有包含任何空检查代码等-这是一个需要您完成的练习。

您不能对不可枚举的对象执行
foreach
,并且您的
Total
属性是
int
,而不是IEnumerable

您的
GrandTotal
属性可能应该在包含
ItemProperties
集合的类中,您的代码看起来与此类似:

public ItemProperties[] MyItems { get; set; }

public int GrandTotal 
{
    get 
    {
        var total = 0;
        foreach (var item in MyItems)
            total += item.Total;

        return total;
    }
}
或者,如果您想使用LINQ:

public List<ItemProperties> MyItems { get; set; }

public int GrandTotal 
{
    get {  return MyItems.Sum(item => item.Total); }
}
public List MyItems{get;set;}
公共整数总计
{
获取{return MyItems.Sum(item=>item.Total);}
}

请注意,我保持了这个简单,没有包含任何空检查代码等-这是一个需要您完成的练习。

总计不是一个
IEnumerable
(例如列表)。试图在单个项目上提供GrandTotal属性是没有意义的,对吗?这里您可能需要的是一种为
列表
获取总计的方法,您可以使用与现有代码非常相似的代码:

List<ItemProperties> ListOfItems = new List<ItemProperties>();
// fill the list
int sum;

foreach (ItemProperties ip in ListOfItems)
{
    sum += ip.Total;
}

总计不是一个
IEnumerable
(如列表)。试图在单个项目上提供GrandTotal属性是没有意义的,对吗?这里您可能需要的是一种为
列表
获取总计的方法,您可以使用与现有代码非常相似的代码:

List<ItemProperties> ListOfItems = new List<ItemProperties>();
// fill the list
int sum;

foreach (ItemProperties ip in ListOfItems)
{
    sum += ip.Total;
}

不能对单个项目计算
GrandTotal
。您需要在收集项目时执行此操作。该属性在单个项上没有意义,应该删除

C#提供了一种计算总量的简便方法:

var grandTotal = Items.Sum(item => item.Total);

如果需要解释具有
GrandTotal
属性的类,请在自定义类中包装一个列表,并将该属性放在
ItemPropertiesList
类中。

您无法对单个项计算
GrandTotal
。您需要在收集项目时执行此操作。该属性在单个项上没有意义,应该删除

C#提供了一种计算总量的简便方法:

var grandTotal = Items.Sum(item => item.Total);

如果需要解释具有
GrandTotal
属性的类,请在自定义类中包装一个列表,并将该属性放在
ItemPropertiesList
类中。

在GrantTotal属性中,尝试循环一个整数,而不是枚举。您应该为您的项目创建一个扩展。什么是“单个属性的总数”?通常,“total”是在某种类型的集合上计算的,通常使用类似
items.Sum(i=>i.Property)
奇怪的是,GrandTotal与total处于同一级别。从逻辑上讲,更高的级别是有意义的,这样您就可以从项目集合中获取总数。在GrantTotal属性中,您尝试循环使用整数而不是枚举。您应该为您的项目创建一个扩展。什么是“单个属性的总数”?通常,“total”是在某种类型的集合上计算的,通常使用类似
items.Sum(i=>i.Property)
奇怪的是,GrandTotal与total处于同一级别。从逻辑上讲,更高一级是有意义的,这样你就可以从你收集的物品中得到总数。我明白了。谢谢关于如何计算
总数
,您有什么建议吗?`非常感谢!我懂了。谢谢关于如何计算
总数
,您有什么建议吗?`非常感谢!