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处于同一级别。从逻辑上讲,更高一级是有意义的,这样你就可以从你收集的物品中得到总数。我明白了。谢谢关于如何计算总数
,您有什么建议吗?`非常感谢!我懂了。谢谢关于如何计算总数
,您有什么建议吗?`非常感谢!