例如我有一个字典,包含两个键值对["Name","张三"]["Age", "18"],就对应生成一个实体
object obj = new {Name="张三", Age="18"},DataRowView也类似,列名即为属性名,C#可以实现吗
实现当然是可以实现,只不过不知道是否有更简单的方法。
笨一点方法是新建一个对象,然后遍历字典,然后对实体对象的属性一一赋值。
这个对象是未知的,他是根据传入字典的键的个数和名称而动态变化的
感谢你的回答
@男的糊涂: 那你先把字典转成Json ,然后json转object 是可以的
导入,Newtonsoft.dll
public static object JsonToObject(string jsonString, object obj) { return JavaScriptConvert.DeserializeObject(jsonString, obj.GetType()); }
@Shendu.cc: 这种方法可以,感谢感谢!
@男的糊涂: 那就结个贴吧
这好像是两个问题。
首先你得定义好你要的实体类,然后:
new出这个实体对象,接下来,
对于字典,遍历 它的所有键
对于DataRowView,遍历 它的所有列
遍历过程中使用反射对实体对象的相应属性赋值。
就这样。
首先感谢你的回答,我的初衷是不想使用提前定义好的实体类,我想达到的效果是传入一个字典我就返回一个对应匿名实体,这个实体类型的属性是根据字典键的个数和名称而动态变化的
肯定可以实现的会稍微有点麻烦