如何获取Dictionary<;int,字符串>;
本文关键字:lt int gt 字符串 Dictionary 何获取 获取 | 更新日期: 2023-09-27 18:16:09
需求如下。现在我有了一本字典。
Dictionary<int,string> dic = new Dictionary<int,string>();
//... some other operations
Type t = typeof(Dictionary<int,string>);
现在我想要得到类型int和string。我怎样才能得到这两个?非常感谢。
更新:
感谢您的回复。实际上,我的要求是基于这两个类型创建另一个泛型类,这两个类是从dictionary类型中获得的。就这样。
PropertyType propertyType = typeof(Dictionary<int,string>);
if (propertyType.Name.Contains("Dictionary"))
{
Type keyType = propertyType.GetGenericArguments()[0];
Type valueType = propertyType.GetGenericArguments()[1];
propertyType = typeof(SerializableDictionary<keyType, valueType>);
}
//And after this, it will dynamically create a class and add the propery as one
//of its properties
现在我不能使用propertyType = typeof(SerializableDictionary<keyType, valueType>)
。我应该如何更新此声明?非常感谢。
下面是一个片段:
Type keyType = t.GetGenericArguments()[0];
Type valueType = t.GetGenericArguments()[1];
更新:
var typeOfNewDictonary = typeof(SerializableDictionary<,>)
.MakeGenericType(new[]
{
keyType,
valueType
});
顺便说一句:以下行错误:
PropertyType propertyType = typeof(Dictionary<int,string>);
应该是:
Type propertyType = typeof(Dictionary<int,string>);
此外,if (propertyType.Name.Contains("Dictionary"))
中的条件是没有意义的。它总是被评估为true
。