C# 在运行时获取非泛型IDictionary的键和值类型
我想知道如何在运行时获得非泛型IDictionary的键和值类型 对于泛型IDictionary,我们可以使用反射来获取泛型参数,这已经得到了回答 但对于非泛型IDictionary,例如HybridDictionary,如何获取键和值类型 编辑:我可能无法正确描述我的问题。 对于非泛型IDictionary,如果我有HyBridDictionary,它声明为C# 在运行时获取非泛型IDictionary的键和值类型,c#,types,dictionary,C#,Types,Dictionary,我想知道如何在运行时获得非泛型IDictionary的键和值类型 对于泛型IDictionary,我们可以使用反射来获取泛型参数,这已经得到了回答 但对于非泛型IDictionary,例如HybridDictionary,如何获取键和值类型 编辑:我可能无法正确描述我的问题。 对于非泛型IDictionary,如果我有HyBridDictionary,它声明为 HyBridDictionary dict = new HyBridDictionary(); dict.Add("foo" , 1)
HyBridDictionary dict = new HyBridDictionary();
dict.Add("foo" , 1);
dict.Add("bar", 2);
如何确定键的类型是字符串,值的类型是int?从msdn页面:
//使用foreach语句隐藏枚举数的复杂性。
//注意:foreach语句是枚举集合内容的首选方法。
公共静态无效打印键和值1(IDictionary mycl){
Console.WriteLine(“键值”);
foreach(mycl中的词典入口)
Console.WriteLine(“{0,-25}{1}”,de.Key,de.Value);
Console.WriteLine();
}
//使用枚举数。
//注意:foreach语句是枚举集合内容的首选方法。
公共静态无效打印键和值2(IDictionary mycl){
IDictionaryEnumerator myEnumerator=mycl.GetEnumerator();
Console.WriteLine(“键值”);
while(myEnumerator.MoveNext())
WriteLine(“{0,-25}{1}”,myEnumerator.Key,myEnumerator.Value);
Console.WriteLine();
}
//使用键、值、计数和项属性。
公共静态无效打印键和值3(Hybridl){
String[]myKeys=新字符串[mycl.Count];
myCol.Keys.CopyTo(myKeys,0);
Console.WriteLine(“索引键值”);
for(int i=0;i
从msdn页面:
//使用foreach语句隐藏枚举数的复杂性。
//注意:foreach语句是枚举集合内容的首选方法。
公共静态无效打印键和值1(IDictionary mycl){
Console.WriteLine(“键值”);
foreach(mycl中的词典入口)
Console.WriteLine(“{0,-25}{1}”,de.Key,de.Value);
Console.WriteLine();
}
//使用枚举数。
//注意:foreach语句是枚举集合内容的首选方法。
公共静态无效打印键和值2(IDictionary mycl){
IDictionaryEnumerator myEnumerator=mycl.GetEnumerator();
Console.WriteLine(“键值”);
while(myEnumerator.MoveNext())
WriteLine(“{0,-25}{1}”,myEnumerator.Key,myEnumerator.Value);
Console.WriteLine();
}
//使用键、值、计数和项属性。
公共静态无效打印键和值3(Hybridl){
String[]myKeys=新字符串[mycl.Count];
myCol.Keys.CopyTo(myKeys,0);
Console.WriteLine(“索引键值”);
for(int i=0;i
试试这个:
foreach (DictionaryEntry de in GetTheDictionary())
{
Console.WriteLine("Key type" + de.Key.GetType());
Console.WriteLine("Value type" + de.Value.GetType());
}
试试这个:
foreach (DictionaryEntry de in GetTheDictionary())
{
Console.WriteLine("Key type" + de.Key.GetType());
Console.WriteLine("Value type" + de.Value.GetType());
}
非泛型词典不一定具有与泛型词典相同的键或值类型。它们可以将任何类型作为键,将任何类型作为值 考虑这一点:
var dict = new System.Collections.Specialized.HybridDictionary();
dict.Add(1, "thing");
dict.Add("thing", 3);
它有多种类型的键和多种类型的值。那么,你认为钥匙是什么类型的呢
您可以找出每个键和单个值的类型,但不能保证它们都是相同的类型。非泛型词典不一定具有与泛型词典相同的键或值类型。它们可以将任何类型作为键,将任何类型作为值 考虑这一点:
var dict = new System.Collections.Specialized.HybridDictionary();
dict.Add(1, "thing");
dict.Add("thing", 3);
它有多种类型的键和多种类型的值。那么,你认为钥匙是什么类型的呢
您可以找出每个键和单个值的类型,但不能保证它们都是相同的类型。他在询问类型。你正在显示键和值。他在询问类型。您正在显示键和值。