我已经编写了以下 linq 语句,但我不禁觉得它可以以某种方式简化。目的是获取一个List<IEnumberable<Counterparty>>
(查询中的counterpartyStatic)对象并找到ClientId 等于Counterparty.CounterpartyId 的订单。然后这些订单应该更新字段 ClientDesc 以匹配 Counterparty.DescriptionField。完成此操作后,我需要引发一个事件,传递所有已更新的订单。
OrderCache 是一个字典,以防不明显。
这是现有的代码:
var updates = new List<Order>();
lock (CacheLock)
{
counterpartyStatic.ToList().ForEach(cachedList =>
cachedList.ToList().ForEach(
counterparty =>
{
var orders = OrderCache.Where(kvp => kvp.Value.Client == counterparty.CounterpartyId);
orders.ToList().ForEach(kvp =>
{
kvp.Value.ClientDesc = counterparty.Description;
updates.Add(kvp.Value);
});
}));
}
RaiseEvent(updates);
谢谢你的帮助