c# – 如何在构造函数中初始化IDictionary?

前端之家收集整理的这篇文章主要介绍了c# – 如何在构造函数中初始化IDictionary?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在TagBuilder和其他类中,我可以写如下:
var tr = new TagBuilder("HeaderStyle"){InnerHtml = html,[IDictionary Attributes]}

但我不知道如何传递IDictionary参数.

我该怎么做呢?无需创建Dictionary变量.

TagBuilder就是一个例子,还有其他类可以接受参数IDictionaryas.问题是关于通用案例.

解决方法

以下博客文章有一个帮助方法,可以从匿名类型创建Dictionary对象.

http://weblogs.asp.net/rosherove/archive/2008/03/11/turn-anonymous-types-into-idictionary-of-values.aspx

void CreateADictionaryFromAnonymousType() 
   { 
       var dictionary = MakeDictionary(new {Name="Roy",Country="Israel"}); 
       Console.WriteLine(dictionary["Name"]); 
   }

private IDictionary MakeDictionary(object withProperties) 
   { 
       IDictionary dic = new Dictionary<string,object>(); 
       var properties = 
           System.ComponentModel.TypeDescriptor.GetProperties(withProperties); 
       foreach (PropertyDescriptor property in properties) 
       { 
           dic.Add(property.Name,property.GetValue(withProperties)); 
       } 
       return dic; 
   }

猜你在找的C#相关文章