日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dictionary To Dynamic

發(fā)布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dictionary To Dynamic 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原文發(fā)布時間為:2012-12-25 —— 來源于本人的百度文章 [由搬家工具導入]

public?static?class?DictionaryExt
????{

????????///?<summary>
????????///?Extension?method?that?turns?a?dictionary?of?string?and?object?to?an?ExpandoObject
????????///?</summary>
????????public?static?ExpandoObject?ToExpando(this?IDictionary<string,?object>?dictionary)
????????{
????????????var?expando?=?new?ExpandoObject();
????????????var?expandoDic?=?(IDictionary<string,?object>)expando;

????????????//?go?through?the?items?in?the?dictionary?and?copy?over?the?key?value?pairs)
????????????foreach?(var?kvp?in?dictionary)
????????????{
????????????????//?if?the?value?can?also?be?turned?into?an?ExpandoObject,?then?do?it!
????????????????if?(kvp.Value?is?IDictionary<string,?object>)
????????????????{
????????????????????var?expandoValue?=?((IDictionary<string,?object>)kvp.Value).ToExpando();
????????????????????expandoDic.Add(kvp.Key,?expandoValue);
????????????????}
????????????????else?if?(kvp.Value?is?ICollection)
????????????????{
????????????????????//?iterate?through?the?collection?and?convert?any?strin-object?dictionaries
????????????????????//?along?the?way?into?expando?objects
????????????????????var?itemList?=?new?List<object>();
????????????????????foreach?(var?item?in?(ICollection)kvp.Value)
????????????????????{
????????????????????????if?(item?is?IDictionary<string,?object>)
????????????????????????{
????????????????????????????var?expandoItem?=?((IDictionary<string,?object>)item).ToExpando();
????????????????????????????itemList.Add(expandoItem);
????????????????????????}
????????????????????????else
????????????????????????{
????????????????????????????itemList.Add(item);
????????????????????????}
????????????????????}

????????????????????expandoDic.Add(kvp.Key,?itemList);
????????????????}
????????????????else
????????????????{
????????????????????expandoDic.Add(kvp);
????????????????}
????????????}

????????????return?expando;
????????}
????}



===============Demo==============

?public?class?Program
????{
????????static?void?Main(string[]?args)
????????{
????????????var?model?=?new?Dictionary<string,?object>?{?{?"Name",?"Jack"?},?{?"Age",?13?},?{?"Married",?false?},
????????????????{"Girlfriend",new?Dictionary<string,?object>?{?{?"Name",?"Lucy"?},?{?"Age",?13?},?{?"Married",?true?}}}
????????????};
????????????dynamic?result?=?model.ToExpando();
????????????Console.WriteLine(result.Name);
????????????Console.WriteLine(result.Girlfriend.Name);
????????????Console.ReadLine();
????????}
????}

轉(zhuǎn)載于:https://www.cnblogs.com/handboy/p/7182593.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Dictionary To Dynamic的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。