我有这个代码:
invoiceSurcharges.Result = from surcharge in invoiceSurcharges.Result
select new ListInvoiceSurchargesGridByInvoice
{
};
现在,我只想修改surcharge
的一个属性,而不必将对象的每个属性都赋给新的属性。如果我能执行以下操作,那就太理想了:
invoiceSurcharges.Result = from surcharge in invoiceSurcharges.Result
select new ListInvoiceSurchargesGridByInvoice
{
...surcharge,
AssociatedInvoice = $"{surcharge.InvoiceSerial}-{surcharge.InvoiceYear}"
};
有什么办法可以用C#来做这件事吗?
1条答案
按热度按时间4nkexdtk1#
向
ListInvoiceSurchargesGridByInvoice
添加复制构造函数,从sucharge对象复制所有属性。您仍然可以使用属性初始化器重写特定属性。请考虑使您的对象不可变,并使属性init-only不可变,这有助于避免对象的意外变化。但是一个更简单的方法可能是使用记录,它们很容易成为不可变的,并且with-expression附带了帮助创建副本的最小样板代码:
在EntityFramework中使用记录时有一些注意事项。如果这是一个问题,我建议做一些进一步的研究。