如何在c#中使用foreach获取正确的文本字符索引

c#

我想使用 forach 循环获取字符索引。

   var text = "aaab";

   foreach (var item in text)
   {
        Console.WriteLine(text.IndexOf(item));
   }

输出为:0 0 0 3

但我期望:0 1 2 3

所以我的其他操作出错了。为什么 indexOf() 方法没有得到正确的索引?

回答

String.IndexOf 方法

报告此实例中指定 Unicode 字符或字符串第一次出现的从零开始的索引。如果在此实例中找不到字符或字符串,则该方法返回 -1。

来源:https : //docs.microsoft.com/en-us/dotnet/api/system.string.indexof

即使“a”出现 3 次,“a”的第一次出现始终为 0。在这种情况下,您的foreach-loop 相当于编写:

var text = "aaab";
Console.WriteLine(text.IndexOf("a"));
Console.WriteLine(text.IndexOf("a"));
Console.WriteLine(text.IndexOf("a"));
Console.WriteLine(text.IndexOf("b"));

但是该方法确实有重载,可以让您指定startIndex开始搜索。


以上是如何在c#中使用foreach获取正确的文本字符索引的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>