我正在尝试为.Net core 1.0重新定位可移植的C#库。
一旦我获得了该语言的CultureInfo对象(通过调用方设置的委托),就曾经做过这样的事情来获取另一种语言的字符串比较器:
IComparer<T> comparer = (IComparer<T>)StringComparer.Create(cultureInfo, caseInsensitive);
.Net Core当前似乎仅通过StringComparer.CurrentCulture之类的属性来支持当前的区域性。
有没有一种方法可以获取给定语言或文化的字符串比较器?
这对于同时使用多种语言的应用程序(例如用于语言学习的应用程序)很重要。
最佳答案
从docs:
每次调用CurrentCulture
属性get访问器都会返回一个新的StringComparer
对象,如以下代码所示。
因此,您可以将Thread.CurrentThread.CurrentCulture
设置为所需的区域性,然后使用StringComparer
来获取该区域性的StringComparer.CurrentCulture
,然后将Thread.CurrentThread.CurrentCulture
设置为下一个所需的区域性,然后再获取另一个StringComparer
...等。
关于c# - 如何在.Net Core中为不同的语言创建StringComparer?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37801425/