Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET CultureInfo.InvariantCulture.CompareInfo IndexOf与LastIndexOf-发生了什么?_C#_.net_Indexof_Lastindexof_Invariantculture - Fatal编程技术网

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

C# .NET CultureInfo.InvariantCulture.CompareInfo IndexOf与LastIndexOf-发生了什么?,c#,.net,indexof,lastindexof,invariantculture,C#,.net,Indexof,Lastindexof,Invariantculture,在我们的应用程序中,我想成为一个好公民,从文化感知字符串比较转移到不变量文化中的一些确定性比较,但正因为如此,我的应用程序开始因无限循环而与OutOfMemory崩溃 这一切都归结于此。我在即时窗口中对此进行了评估: CultureInfo.InvariantCulture.CompareInfo.IndexOf("(např. BroadSwo", " ", 0, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace); 6 Cu

在我们的应用程序中,我想成为一个好公民,从文化感知字符串比较转移到不变量文化中的一些确定性比较,但正因为如此,我的应用程序开始因无限循环而与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如何给我“找不到”


这是虫子吗?或者我遗漏了什么?

似乎
CultureInfo.InvariantCulture.CompareInfo.LastIndexOf
startIndex
参数需要是字符串的长度,因为它会向后搜索。这对我很有用:

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


它返回了6,就像
IndexOf

一样,
CultureInfo.InvariantCulture.CompareInfo.LastIndexOf
startIndex
参数需要是字符串的长度,因为它会向后搜索。这对我来说很有效:

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

它返回了6,正如我搞错了一样

LastIndexOf正在从源的末尾到开头进行搜索。 所以当我设置startPosition=0时,它从位置0到0,什么也找不到

LastIndexOf的正确调用是:

CultureInfo.InvariantCulture.CompareInfo.LastIndexOf("(např. BroadSwo", " ", "(např. BroadSwo".Length - 1, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
6
我错了

LastIndexOf正在从源的末尾到开头进行搜索。 所以当我设置startPosition=0时,它从位置0到0,什么也找不到

LastIndexOf的正确调用是:

CultureInfo.InvariantCulture.CompareInfo.LastIndexOf("(např. BroadSwo", " ", "(např. BroadSwo".Length - 1, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
6
起始索引是从零开始的,所以它应该是源。长度-1是的,我自己发现了。:)正如您在下一个答案中所看到的。无论如何,感谢您的快速响应。然而,有趣的是,它与15一起工作,因为source.Length是15,startIndex是零基的。所以14应该是最后一个索引。嗯,开始索引是零基的,所以应该是source.Length-1是的,我自己发现了。:)正如您在下一个答案中所看到的。谢谢你的快速回复。然而有趣的是,它使用15,因为source.Length是15,startIndex是基于零的。所以14应该是最后一个指数。嗯