IEnumerable<T>s不 保证 更新的值将在枚举中持久存在。例如,a
List将在每次迭代中返回相同的对象集,因此,如果更新属性,则将在多次迭代中保存该属性。但是,的许多其他实现
IEnumerable每次都返回一组新的对象,因此所做的任何更改都不会持久。
如果您需要存储和更新结果,请
IEnumerable<T>下拉至“
List<T>使用”,
.ToList()或将其投影到新的“
IEnumerable<T>使用
.Select()了更改的应用”中。
要将其专门应用于您的代码,它将如下所示:
var transactions = (from t in db.Transactions where t.SellingPrice != 0 select t).ToList();var taAgents = (from ta in db.TransactionAgents select ta).ToList();foreach (var transaction in transactions){ foreach(var agent in taAgents) { agent.AgentCommission = ((transaction.CommissionPercent / 100) * (agent.CommissionPercent / 100) * transaction.SellingPrice) - agent.BrokerageSplit; } }dataGridView1.DataSource = taAgents;


