C#向已创建的动态对象列表添加属性

时间:2018-03-22 10:04:07

标签: c# dynamic anonymous-class

我正在创建如下列表:

var result = data.Select(p => new
            {
                p.FirstName,
                p.LastName,
                Relationship = p.RelationshipType,
                p.TierType,
                Gender = p.GenderType,
                p.AnnualSalary
            });

但是,我需要在结果的每个数组项中添加更多属性,如下所示

foreach(var property in ListOfAdditionalProperties)
{
  // Add property logic
}

这可能吗?

我尝试过ExpandoObject,但是无法提出我在顶部提到的Lambda时获得的最终结果列表。

1 个答案:

答案 0 :(得分:0)

不,这是不可能的。

创建类型后,无法向动态类型添加更多成员。 把它想象成一个类声明。一旦声明并编译了类,就无法修改它。

您需要使用其他方法,就像您提到的方法一样。但是,是的,这在语法方面有其缺点。