C#字典轉(zhuǎn)指定類型的技巧分享
創(chuàng)建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>
/// 字典類型轉(zhuǎn)化為對(duì)象
/// </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; }
}
補(bǔ)充
但是上述方法無(wú)法將字典轉(zhuǎn)化為object,可以使用序列化巧妙轉(zhuǎn)化
public static object DicToObj(Dictionary<string, object> dictionary)
{
string json = JsonConvert.SerializeObject(dictionary);
return JsonConvert.DeserializeObject<object>(json);
}
到此這篇關(guān)于C#字典轉(zhuǎn)指定類型的技巧分享的文章就介紹到這了,更多相關(guān)C#字典轉(zhuǎn)指定類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#自動(dòng)刪除Word文檔空白行和空白頁(yè)的完整代碼
在處理 Word 文檔時(shí),經(jīng)常會(huì)遇到空白行、空表格或空白頁(yè)的問題,這不僅影響排版美觀,還可能導(dǎo)致文檔頁(yè)數(shù)冗余,所以本文將介紹如何使用 Spire.Doc for .NET 在 C# 中自動(dòng)刪除 Word 文檔的空白行、空表格和空白頁(yè),需要的朋友可以參考下2025-08-08
使用C#實(shí)現(xiàn)在word中插入頁(yè)眉頁(yè)腳的方法
這篇文章主要介紹了使用C#實(shí)現(xiàn)在word中插入頁(yè)眉頁(yè)腳的方法,是操作Word的常見方法,有一定的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下2014-08-08
C#設(shè)計(jì)模式之Mediator中介者模式解決程序員的七夕緣分問題示例
這篇文章主要介紹了C#設(shè)計(jì)模式之Mediator中介者模式解決程序員的七夕緣分問題,簡(jiǎn)單說(shuō)明了中介者模式的定義并結(jié)合七夕緣分問題實(shí)例分析了中介者模式的具體使用技巧,需要的朋友可以參考下2017-09-09
C#調(diào)用釘釘API發(fā)送通知的實(shí)現(xiàn)示例
本文介紹了使用C#調(diào)用釘釘API實(shí)現(xiàn)企業(yè)通知推送的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-11-11
C#?WPF?內(nèi)置解碼器實(shí)現(xiàn)?GIF?動(dòng)圖控件的方法
本文給大家介紹C# WPF內(nèi)置解碼器實(shí)現(xiàn)GIF動(dòng)圖控件的方法,文章對(duì)比了WPF與WinForm顯示動(dòng)態(tài)GIF的差異,列舉了MediaElement、嵌入PictureBox、WpfAnimatedGif等解決方案,感興趣的朋友跟隨小編一起看看吧2025-08-08

