我有一些DataGridView我转换为实体对象的行.在转换过程中,我重置了一些值.由于"基本"数据来自DataBoundItem当前DataGridViewRow,因此使用对象初始化器不是我正在寻找的选项,我不想分配来自DataBoundItem再次(冗余)的第一个对象的每个值.
所以我的问题是:是否可以一次分配多个对象属性,如果,你是如何实现它的?
我发现了以下问题,但没有一个能解决我的问题:
foreach (DataGridViewRow CurrRow in DataGridView.Rows)
{
SomeObject SomeObj = (SomeObject) CurrRow.DataBoundItem;
SomeObj.PropertyA = 0;
SomeObj.PropertyB = 0;
SomeObjCollection.Add(SomeObj);
}
Run Code Online (Sandbox Code Playgroud)
单独使用逗号分配属性(在昏迷时给出语法错误):
TimeEntries.Hours, TimeEntries.Expenses = 0;
Run Code Online (Sandbox Code Playgroud)
您可以使用=运算符在链中分配它们:
TimeEntries.Hours = TimeEntries.Expenses = 0;
Run Code Online (Sandbox Code Playgroud)
好像你会向后看这个陈述.
在循环的情况下,它看起来像这样:
foreach (DataGridViewRow CurrRow in DataGridView.Rows)
{
SomeObject SomeObj = (SomeObject) CurrRow.DataBoundItem;
SomeObj.PropertyA = SomeObj.PropertyB = 0;
SomeObjCollection.Add(SomeObj);
}
Run Code Online (Sandbox Code Playgroud)
重要的提示:
如果您正在处理引用类型,则只会为不同的属性分配1个引用.因此,更改其中一个将影响所有其他属性!