如何以独立于系统的方式使用字符串格式化、比较和解析

本文关键字:字符串 方式使 格式化 和解 比较 独立 于系统 系统 | 更新日期: 2023-09-27 18:03:42

我正在用c#编写一个控制台应用程序,它大量使用字符串比较以及格式化和解析数字,这些数字从文本文件中读取和写入。

理想情况下,程序在每台计算机上的行为应该完全相同,但是在使用不同语言环境的计算机上进行测试后,我意识到c#中提到的功能会自动使用当前语言环境的格式。这是不幸的,因为系统的语言环境会导致我的程序的行为发生变化,甚至导致程序崩溃(例如,当用错误的系统特定的十进制分隔符解析数字时)。

我正在寻找一种方法来告诉编译器/程序忽略当前的区域设置,而使用默认的/english。

我已经看到了前面提到的解决方案,可以改变线程的默认语言环境

我不确定如何使用linq, parallel foreach等,所以理想情况下,我只想为整个程序设置英语/默认语言环境,以避免任何事故。我该怎么做呢?

如何以独立于系统的方式使用字符串格式化、比较和解析

查看:为所有线程设置默认线程文化?

但是它的长和短是它是用CultureInfo.DefaultThreadCurrentCulture属性设置的,根据https://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.defaultthreadcurrentculture.aspx