首页 新闻 会员 周边

c#,将数据字典转换成对象的方法

0
悬赏园豆:10 [已解决问题] 解决于 2015-12-02 13:13

假设有这样一个类:
Person{
    public string name;
    public string age;
    public string sex;
}
函数每次传入两个有序字符串数组, fun(string[] keys, string[] values), 像这样 keys = {"name", "age", "sex"}, values ={"小明", "20", ""}, 怎么将传入的值组装成一个Person对象最简单?

 

 
灵枢的主页 灵枢 | 菜鸟二级 | 园豆:297
提问于:2015-12-02 12:14
< >
分享
最佳答案
1
 public static Person InitPerson(string[] keys, string[] values)
        {
            Person person = new Person();
            var len = keys.Length;
            for (int i = 0; i < len; i++)
            {
                 person.GetType().GetField(keys[i]).SetValue(person,values[i]);
            }
            return person;
        }
收获园豆:10
凝冰 | 小虾三级 |园豆:685 | 2015-12-02 12:36
其他回答(2)
0
            var keys = new string[] { "name", "age", "sex" };
            var values = new string[] { "小明", "20", "" };
            Dictionary<string, object> dict = new Dictionary<string, object>();
for (int i = 0; i < keys.Length; i++) { dict[keys[i]] = values[i]; } System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer(); var person = js.ConvertToType<Person>(dict);
Qlin | 园豆:2403 (老鸟四级) | 2015-12-02 12:28
-1

建议传成Json格式,这样可以直接序列化和反序列化得到。

如果非要这样的话,写循环一个字段一个字段赋值吧。

明Lam | 园豆:615 (小虾三级) | 2015-12-02 12:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册