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# 反射(Reflection)

    详解C# 反射(Reflection)

    这篇文章主要介绍了C# 反射(Reflection)的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下
    2020-06-06
  • C#自动删除Word文档空白行和空白页的完整代码

    C#自动删除Word文档空白行和空白页的完整代码

    在处理 Word 文档时,经常会遇到空白行、空表格或空白页的问题,这不仅影响排版美观,还可能导致文档页数冗余,所以本文将介绍如何使用 Spire.Doc for .NET 在 C# 中自动删除 Word 文档的空白行、空表格和空白页,需要的朋友可以参考下
    2025-08-08
  • 一起详细聊聊C#中的Visitor模式

    一起详细聊聊C#中的Visitor模式

    Visitor模式表示一个作用于某对象结构中的各元素的操作,下面这篇文章主要给大家介绍了关于C#中Visitor模式的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • C#异步执行任务的方法

    C#异步执行任务的方法

    这篇文章主要介绍了C#异步执行任务的方法,以一个简单实例形式分析了C#异步执行的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 使用C#实现在word中插入页眉页脚的方法

    使用C#实现在word中插入页眉页脚的方法

    这篇文章主要介绍了使用C#实现在word中插入页眉页脚的方法,是操作Word的常见方法,有一定的学习借鉴价值,需要的朋友可以参考下
    2014-08-08
  • C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例

    C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题示例

    这篇文章主要介绍了C#设计模式之Mediator中介者模式解决程序员的七夕缘分问题,简单说明了中介者模式的定义并结合七夕缘分问题实例分析了中介者模式的具体使用技巧,需要的朋友可以参考下
    2017-09-09
  • C#中隐式运行CMD命令行窗口的方法

    C#中隐式运行CMD命令行窗口的方法

    下面介绍一种常用的在C#程序中调用CMD.exe程序,并且不显示命令行窗口界面,来完成CMD中各种功能的简单方法。
    2011-04-04
  • C#调用钉钉API发送通知的实现示例

    C#调用钉钉API发送通知的实现示例

    本文介绍了使用C#调用钉钉API实现企业通知推送的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-11-11
  • C# WPF 内置解码器实现 GIF 动图控件的方法

    C# WPF 内置解码器实现 GIF 动图控件的方法

    本文给大家介绍C# WPF内置解码器实现GIF动图控件的方法,文章对比了WPF与WinForm显示动态GIF的差异,列举了MediaElement、嵌入PictureBox、WpfAnimatedGif等解决方案,感兴趣的朋友跟随小编一起看看吧
    2025-08-08
  • c#中的正则表达式和日期的使用示例

    c#中的正则表达式和日期的使用示例

    在 C# 中,正则表达式(Regular Expressions)是一种强大的文本处理工具,用于执行各种字符串搜索、替换和验证任务,这篇文章主要介绍了c#中的正则表达式和日期的使用示例,需要的朋友可以参考下
    2024-07-07

最新评论