创建从数组读取属性的expandooobject列表

本文关键字:expandooobject 列表 属性 读取 数组 创建 | 更新日期: 2023-09-27 17:50:52

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

假设我的对象的属性在一个数组中(例如:FirstName, LastName,Email)。

我想创建具有上述属性的动态对象receiver。然后我要创建一个列表,并将这些对象中的一些添加到该列表中。

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

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

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

创建从数组读取属性的expandooobject列表

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

IDictionary<string, object> recipient = new ExpandoObject();
foreach (string property in fields)
{
   recipient[property] = string.Empty;
}