为了账号安全,请及时绑定邮箱和手机立即绑定

将匿名类型转换为字典

将匿名类型转换为字典

C#
Smart猫小萌 2023-12-17 20:02:15
我正在尝试创建一个将匿名类型转换为字典的函数。 我正在查看此链接线程中已接受的答案。但是我收到错误无法使用 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;

        }


查看完整回答
反对 回复 2023-12-17
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信