String.IndexOf 在 Xamarin.Android (Mono) 上失败,但在 .NET Framework 上失败

String.IndexOf fails on Xamarin.Android (Mono) but not on .NET Framework

下面的行 returns -1(不正确)在 Xamarin.Android 和 2(正确)在 .NET Framework 上:

"ビューアー".IndexOf("ー")

查看Mono源代码,SimpleCollator.cs,我可以看到字符“ー”(0x30FC)有特殊处理。

有没有办法让这条线在Xamarin.Android中正常工作?

不同于 .NET 框架。在 Xamarin (iOS and Android) 中,我们需要实现 localization 来支持多种语言。对于您的情况,最简单的方法是忽略 LanguageA​​rea .

var index = "ビューアー".IndexOf("ー",StringComparison.OrdinalIgnoreCase);

有关本地化的更多详细信息,请参阅 Xamarin.Android Localization