我正在Windows和Linux(Ubuntu 18.04)上的.NET Core之间进行结果比较。在字符串比较中,我看到了不同的结果。运行以下代码段时,在Windows上获得0
,在Linux上获得-1
。我对这段代码的理解是,♪
字符应被忽略,其余的“ Mary”应匹配。
我尝试使用CurrentCulture
,InvariantCulture
,多个CompareOptions
-在Linux上它们都返回-1。
遍历CompareInfo
源代码here时,它指向FindNLSStringEx
的使用,据我理解为Q/Invoke to the kernel。如果是这样,Linux如何处理此代码?有什么办法让Linux在这里返回0
?
System.Globalization.CompareInfo info = System.Globalization.CultureInfo.CurrentCulture.CompareInfo;
int index = info.IndexOf("Mary", "♪Mary", System.Globalization.CompareOptions.IgnoreSymbols);
System.Console.WriteLine(index);