有没有办法将Dictionary类型转换为另一种类型的Dictionary?
我想将Dictionary <string , string[]>
转换为Dictionary <string , double[]>
答案 0 :(得分:1)
假设字符串数组中的每个元素都可以转换为double,则必须单独转换地图中的每个元素:
var result = myDict.ToDictionary(
x => x.Key,
x => x.Value.Select(y => Convert.ToDouble(y)).ToArray());
要在输入数据包含内容时保存taht无法解析为double,您也可以考虑使用Double.TryParse
:
var result = myDict.ToDictionary(
x => x.Key,
x => x.Value.Select(y =>
{
double value = 0;
Double.TryParse(x, out value));
return value;
}
我们不会在此处关注TryParse
的结果,因为我们将value
设置为其默认值,如果转换失败则返回此值。但是,如果要返回另一个值,还应在此处添加if语句,并在解析失败时返回一些不同的值(例如-1
)。