C#字典转指定类型的技巧分享
更新时间:2023年10月17日 08:34:13 作者:xyy123
这篇文章主要给大家介绍了C#字典转指定类型的技巧,文中通过代码示例介绍的非常详细,对大家的学习或工作有一定的帮助,有需要的朋友可以借鉴参考一下
创建Helper
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace dicToObj
{
internal class Helper
{
/// <summary>
/// 字典类型转化为对象
/// </summary>
/// <param name="dic"></param>
/// <returns></returns>
public T DicToObject<T>(Dictionary<string, object> dic) where T : new()
{
var md = new T();
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
foreach (var d in dic)
{
var filed = textInfo.ToTitleCase(d.Key);
try
{
var value = d.Value;
md.GetType().GetProperty(filed).SetValue(md, value);
}
catch (Exception e)
{
}
}
return md;
}
}
}使用演示
using dicToObj;
var dic = new Dictionary<string, object>()
{
{"name", "Tom"},
{"age", 25},
{"address", "Beijing"}
};
Helper helper = new Helper();
var person = helper.DicToObject<Person>(dic);
Console.WriteLine(person);
Console.WriteLine();
public record Person
{
public string Name { get; set; }
public int Age { get; set; }
public string Address { get; set; }
}
补充
但是上述方法无法将字典转化为object,可以使用序列化巧妙转化
public static object DicToObj(Dictionary<string, object> dictionary)
{
string json = JsonConvert.SerializeObject(dictionary);
return JsonConvert.DeserializeObject<object>(json);
}
到此这篇关于C#字典转指定类型的技巧分享的文章就介绍到这了,更多相关C#字典转指定类型内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
使用C#和Jieba.NET实现中英文混合文本关键词的提取功能
Jieba.NET 是一个在 C# 中实现的分词库,它基于 Java 的 jieba 分词库,并进行了 C# 语言的移植,Jieba 是一个高效的中文分词工具,能够处理全模式、精确模式以及搜索引擎模式,本文给大家介绍了如何使用C#和Jieba.NET实现中英文混合文本关键词的提取功能2025-03-03
Unity的AssetPostprocessor之Model函数使用实战
这篇文章主要为大家介绍了Unity的AssetPostprocessor之Model函数使用实战,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-08-08
C# Winform 实现屏蔽键盘的win和alt+F4的实现代码
最近在做一个恶搞程序,就是打开后,程序获得桌面的截图然后,然后全屏显示在屏幕上,用户此时则不能进行任何操作。2009-02-02


最新评论