将Dictionary <string,=“”string [] =“”>转换为Dictionary <string,=“”double [] =“”>?

时间:2016-03-10 14:09:33

标签: c# dictionary

有没有办法将Dictionary类型转换为另一种类型的Dictionary?

我想将Dictionary <string , string[]>转换为Dictionary <string , double[]>

1 个答案:

答案 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)。