gpt4 book ai didi

C# 字典的转换

转载 作者:行者123 更新时间:2023-11-30 15:08:50 25 4
gpt4 key购买 nike

我有这个功能:

void WriteMap(object value)  
{
IDictionary<string, object> vv = (IDictionary<string, object>)value;
foreach (KeyValuePair<string, object> obj in vv)
{
(write key)
(write value)
}
}

如果值确实是 IDictionary<string, object> 类型,它会起作用,但它可能是这样的:
IDictionary<string, int> IDictionary<string, MyClass> IDictionary<string, string[]>等等

强制转换抛出一个运行时异常。该函数不修改容器,它只打印键和值。关于如何使这项工作有任何想法?任何帮助将不胜感激。

谢谢!

最佳答案

在你的方法中添加一个泛型类型参数,对应于你字典中值的类型:

void WriteMap<T>(IDictionary<string, T> dict)
{
foreach (KeyValuePair<string, T> in dict)
{
// write key
// write value
}
}

这具有消除强制转换的优点。如果出于某种原因需要将字典作为对象传递,只需将其转换为 IDictionary。 .

关于C# 字典的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com