我正在尝试创建一个将匿名类型转换为字典的函数。 我正在查看此链接线程中已接受的答案。但是我收到错误无法使用 lambda 表达式作为动态参数 分派操作而不首先将其强制转换为委托或 表达式树类型这就是我想做的public Dictionary<string,string> convert(dynamic dtype){ var props = content.GetType().GetProperties(); var pairs = props.Select(x => x.Name + "=" + x.GetValue(a, null)).ToArray(); // <----Exception var result = string.Join("&", pairs); return result} 关于如何解决这个问题有什么建议吗?我正在尝试这样做 var student= new { // TODO: Make this figure out and return underlying device status. type = "Active", }; var dict = convert(student);
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
例外在这里:
x.GetValue(a, null)
只需将 a 更改为 content,如下所示:
var pairs = props.Select(x => x.Name + "=" + x.GetValue(content, null)).ToArray();
content 是您的匿名对象的名称。
但是你写的这个解决方案不返回字典。 如果您想要字典,请执行以下操作:
public static Dictionary<string, string> convert(object content)
{
var props = content.GetType().GetProperties();
var pairDictionary = props.ToDictionary(x => x.Name,x=>x.GetValue(content,null)?.ToString());
return pairDictionary;
}
- 1 回答
- 0 关注
- 129 浏览
添加回答
举报
0/150
提交
取消