首页 新闻 搜索 专区 学院

C# DataRowView或字典转换为单个实体

0
[已解决问题] 解决于 2018-04-26 17:10

例如我有一个字典,包含两个键值对["Name","张三"]["Age", "18"],就对应生成一个实体

object obj = new {Name="张三", Age="18"},DataRowView也类似,列名即为属性名,C#可以实现吗

C#
男的糊涂的主页 男的糊涂 | 菜鸟二级 | 园豆:204
提问于:2018-04-24 16:37
< >
分享
最佳答案
0

实现当然是可以实现,只不过不知道是否有更简单的方法。

笨一点方法是新建一个对象,然后遍历字典,然后对实体对象的属性一一赋值。

奖励园豆:5
Shendu.CC | 小虾三级 |园豆:1918 | 2018-04-24 16:42

这个对象是未知的,他是根据传入字典的键的个数和名称而动态变化的

男的糊涂 | 园豆:204 (菜鸟二级) | 2018-04-24 17:47

感谢你的回答

男的糊涂 | 园豆:204 (菜鸟二级) | 2018-04-24 17:48

@男的糊涂: 那你先把字典转成Json ,然后json转object 是可以的

导入,Newtonsoft.dll

  public static object JsonToObject(string jsonString, object obj)
       {
            return JavaScriptConvert.DeserializeObject(jsonString, obj.GetType());
         }
Shendu.CC | 园豆:1918 (小虾三级) | 2018-04-24 18:03

@Shendu.cc: 这种方法可以,感谢感谢!

男的糊涂 | 园豆:204 (菜鸟二级) | 2018-04-25 11:29

@男的糊涂: 那就结个贴吧

Shendu.CC | 园豆:1918 (小虾三级) | 2018-04-25 15:29
其他回答(2)
0

这好像是两个问题。

首先你得定义好你要的实体类,然后:

new出这个实体对象,接下来,

对于字典,遍历 它的所有键

对于DataRowView,遍历 它的所有列

遍历过程中使用反射对实体对象的相应属性赋值。

 

就这样。

西漠以西 | 园豆:1675 (小虾三级) | 2018-04-24 17:21

首先感谢你的回答,我的初衷是不想使用提前定义好的实体类,我想达到的效果是传入一个字典我就返回一个对应匿名实体,这个实体类型的属性是根据字典键的个数和名称而动态变化的

支持(0) 反对(0) 男的糊涂 | 园豆:204 (菜鸟二级) | 2018-04-24 17:51
0

肯定可以实现的会稍微有点麻烦

小男孩的Code | 园豆:205 (菜鸟二级) | 2018-04-26 17:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册