我有两个列表
List<Customer> customer = new List<Customer>()
{ Id =1 , Name = 'Demo1' , OrderId = 123}
{ Id =1 , Name = 'Demo2' , OrderId = 123}
List<Order> order = new List<Order>()
{ Id =77 , CustomerName = 'Demo1'}
{ Id =88 , CustomerName = 'Demo2'}
我想更换 customer.OrderId = order.Id where order.CustomerName = customer.Name
我想更换 customer list OrderId value from order list when CustomerName is matching with Name prop
我正在尝试这样的事情 -
customer = order.Select(eo => new Customer { Name = eo.CustomerName });
这不正确 LINQ 任何人都可以在这里纠正我吗?
LINQ 主要适用于查询,而不适用于数据修改。
相反,我只会使用 simple foreach
:
foreach (var c in customer)
{
var o = order.FirstOrDefault(o => o.CustomerName == c.Name);
c.OrderId = o?.Id ?? 0;
}
当然,当每个客户有多个订单时,这种方法不会奏效。此外,我建议将变量重命名为复数 -customers
并orders
更好地表示它们的含义。
对于纯粹的 LINQ 方法,您可以编写一个ForEach
LINQ 扩展方法,但我发现一个明确foreach
的更易读的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句