提问人:skm 提问时间:6/10/2022 更新时间:6/10/2022 访问量:411
如何在string.join()中指定InvariantCulture?
How to specify InvariantCulture in string.join()?
问:
我编写了下面的代码,其中我尝试使用方法将类型的数组转换为值。然后,我将字符串值作为属性添加到 XML 元素中。double
string
string.join()
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
答:
4赞
Heinzi
6/10/2022
#1
不幸的是,没有字符串。采用 CultureInfo 参数的 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));
评论