【问题标题】:How to specify InvariantCulture in string.join()?如何在 string.join() 中指定 InvariantCulture?
【发布时间】:2022-06-10 21:29:49
【问题描述】:

我已经编写了下面的代码,其中我试图使用string.join() 方法将double 类型的数组转换为string 值。然后,我将字符串值作为属性添加到 XML 元素。

        XElement element = new("TestNode");
        double[] myDoubleArray = new double[2] { 0.001, 1.0 };
        var stringValue = string.Join(" ", myDoubleArray);
        element.Add(new XAttribute("Values", stringValue));

上面代码的输出是

<TestNode Values="0,001 1" />

可以看出,0.001的值已经写成0,001,因为我的系统语言是德语。

问题:如何在保持 InvariantCulture 的同时从 double 类型的数组(以最少的代码行数)创建一个空格分隔的字符串?

【问题讨论】:

    标签: c# string invariantculture


    【解决方案1】:

    不幸的是,没有采用 CultureInfo 参数的 string.Join 重载。因此,您必须自己进行转换:

    XElement element = new("TestNode");
    double[] myDoubleArray = new double[2] { 0.001, 1.0 };
    
    var myDoublesFormatted = myDoubleArray.Select(d => d.ToString(CultureInfo.InvariantCulture));
    
    var stringValue = string.Join(" ", myDoublesFormatted);
    element.Add(new XAttribute("Values", stringValue));
    

    【讨论】:

      猜你喜欢
      • 2011-03-14
      • 1970-01-01
      • 2011-03-14
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 2014-03-07
      • 2014-06-01
      • 1970-01-01
      相关资源
      最近更新 更多