【发布时间】:2014-05-31 22:07:32
【问题描述】:
我有一个循环遍历集合中项目的 foreach 循环。如果该项目已经存在,是否可以重用元素的属性?例如:
foreach(example item in creditItems)
{
item.Total += item.Quantity;
}
假设creditItems 中有 3 个项目。第一项和第三项是相同的,至少它们应该是相同的。问题是它们被认为是完全不同的项目(这是可以理解的)。问题在于,当它循环到最后一项时,item.Quantity 不会添加到原始的 item.Total,因为它被认为是一个新项目,所以总数是 0 + item.Quantity。是不是我的逻辑错了?
【问题讨论】:
-
我认为这是不可能的。我可能会使用单独的变量来进行求和,或者使用 linq 语句
-
item.Quantity 不会添加到原始 item.Total 中,因为它被认为是新项目 - 那么它 是 新的,即这是一个不同的对象。如果这是您的要求,您应该预先确保每个项目在逻辑上都是唯一的。否则你最终会到处添加特殊情况,你的代码就会变得一团糟。尽早执行不变量。