gpt4 book ai didi

c# - 如何在 C# 中将 Dictionary 转换为 Dictionary

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:44 29 4
gpt4 key购买 nike

我在 C# 中有以下代码

Dictionary<string, object> dObject = new Dictionary<string, object>();

我要转换dObjectDictionary<string, string> .我该怎么做?

最佳答案

使用 ToDictionary 方法:

Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value.ToString());

在这里,您重用了原始字典中的键,并使用 ToString 方法将值转换为字符串。

如果您的字典可以包含空值,您应该在执行 ToString 之前添加一个空值检查:

Dictionary<string, string> dString = dObject.ToDictionary(k => k.Key, k => k.Value == null ? "" : k.Value.ToString());

这样做的原因是 Dictionary<string, object>实际上是一个 IEnumerable<KeyValuePair<string,object>> .上面的代码示例遍历可枚举对象并使用 ToDictionary 方法构建一个新字典。

编辑:

在 .Net 2.0 中,您不能使用 ToDictionary 方法,但您可以使用老式的 foreach 方法实现相同的目的:

Dictionary<string, string> sd = new Dictionary<string, string>(); 
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
sd.Add(keyValuePair.Key, keyValuePair.Value.ToString());
}

编辑2:

如果您使用的是 .Net 2.0 并且您可以在字典中包含空值,则以下内容应该是安全的:

Dictionary<string, string> sd = new Dictionary<string, string>(); 
foreach (KeyValuePair<string, object> keyValuePair in dict)
{
sd.Add(keyValuePair.Key, keyValuePair.Value == null ? "" : keyValuePair.Value.ToString());
}

关于c# - 如何在 C# 中将 Dictionary<string, object> 转换为 Dictionary<string, string>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32178419/

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