11

我正在尝试创建对象的动态列表,因为我不知道我的对象将具有哪些属性,直到我从文件中读取它们。

所以假设我在一个数组中有我的对象的属性(例如FirstName、LastName、Email)。

我想使用上述属性创建名为 Recipient 的动态对象。然后我想创建一个列表并将其中一些对象添加到该列表中。

到目前为止,我已经完成了以下操作,但我不确定这是否是将属性分配给动态对象的正确方法(“字段”是数组的名称):

var persons = new List<dynamic>();
dynamic Recipient = new ExpandoObject() as IDictionary<string, Object>;
foreach (string property in fields)
{
   Recipient.property = string.Empty;
}

如何创建具有上述属性的收件人对象,然后将这些收件人添加到人员列表中?

4

1 回答 1

14

ExpandoObject实现IDictionary<string, object>接口,其中键/值将映射到成员名称/值。如果数组中有属性名称,则fields只需将它们用作字典键:

IDictionary<string, object> recipient = new ExpandoObject();
foreach (string property in fields)
{
   recipient[property] = string.Empty;
}
于 2013-01-07T15:54:31.897 回答