c# - .NET CultureInfo.InvariantCulture.CompareInfo IndexOf 与 LastIndexOf - 发生了什么?

标签 c# .net indexof lastindexof invariantculture

在我们的应用程序中,我想成为好公民,并从文化感知字符串比较转移到 InvariantCulture 中的某些确定性比较,但正因为如此,我的应用程序开始因无限循环而因 OutOfMemory 崩溃。

一切都归结于此。我在立即窗口中对此进行了评估:

CultureInfo.InvariantCulture.CompareInfo.IndexOf("(např. BroadSwo", " ", 0, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
6

CultureInfo.InvariantCulture.CompareInfo.LastIndexOf("(např. BroadSwo", " ", 0, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
-1

这里到底发生了什么?

当具有相同区域性和相同输入的 IndexOf 给我“找到一些”时,LastIndexOf 如何给我“未找到”?

这是一个BUG吗?或者我缺少什么?

最佳答案

看来CultureInfo.InvariantCulture.CompareInfo.LastIndexOfstartIndex参数需要是字符串的长度,因为它向后搜索。这对我有用:

CultureInfo.InvariantCulture.CompareInfo.LastIndexOf("(např.BroadSwo", "", 15, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace)

它返回 6,IndexOf 也是如此。

关于c# - .NET CultureInfo.InvariantCulture.CompareInfo IndexOf 与 LastIndexOf - 发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088353/

相关文章:

c# - 如何制作事件字典?

c# - 使用 MVC 上传和处理多个文件

javascript - AngularJs - 向项目添加新属性使用 .indexOf 给出重复值

java - 如何避免 DB4o 数据库中的重复对象

java - 在java中同时从字符串中提取2个单词

arrays - 在 Ruby 中,如何以不区分大小写的方式查找数组中元素的索引?

c# - 如何将 DLL 添加到 GAC

c# - 是否可以使用 System.Data.Linq.Mapping.FunctionAttribute 制作一个通用方法来代替三种方法?

c# - 如何使用 Microsoft.Azure.Search 搜索 ContinuationToken

c# - 通过遍历数组创建 KeyValuePair 列表