如何将键值对列表转换为动态对象

本文关键字:动态 对象 转换 列表 键值对 | 更新日期: 2023-09-27 18:10:11

基本上我在尝试从:

keys[3] = {"id", "name", "comment"}
values[3] = {"1", "Ackerman", "superuser"}

:

new { id: "1", name: "Ackerman", comment: "superuser"}

我该怎么做?

如何将键值对列表转换为动态对象

我认为你需要的是一个允许动态添加属性的Expando对象:

keys[3] = {"id", "name", "comment"}
values[3] = {1, "Ackerman", "superuser"}
dynamic item = new ExpandoObject();
var dItem = item as IDictionary<String, object>;
for(int buc = 0; buc < keys.Length; buc++)
    dItem.Add(keys[buc], values[buc]);

之后,你可以像调用其他对象一样调用你的对象:

var id = item.id;
var comment = item.comment;
item.name = "new name";