c# - 当我使用 array.Length 作为索引时,为什么我的数组会抛出错误“System.ArgumentOutOfRangeException”?
问题描述
我正在使用StringBuilder
转换为字符的 int 来替换字符串中的每个字符。出于某种原因,即使索引在范围内,字符串生成器也会引发“超出索引错误”。
我想使用 I 作为索引,但我将其更改为array.Length
只是为了确保索引在范围内。
string input = Console.ReadLine();
char[] array = input.ToCharArray();
int totalOffsetToRemove = array.Length + 44;
StringBuilder sb = new StringBuilder(input);
string result;
for (int i = array.Length; i > 0; i--)
{
char c = Convert.ToChar(totalOffsetToRemove);
sb[array.Length] = c;
result = sb.ToString();
Console.WriteLine(result);
totalOffsetToRemove -= 2;
}
解决方案
索引从零开始,因此 array[array.Length] 无效并且索引范围从0
到array.Length - 1
。
改变
for (int i = array.Length; i > 0; i--)
至
for (int i = array.Length - 1; i >= 0; i--)
推荐阅读
- docker - 当我在本地开发时,我的 docker 实例可以更新吗?
- mongodb - 构建我的 mongodb 集合的最佳方法是什么
- reactjs - React - 为什么 Google Analytics 的文档标题不更新?
- ios - 使用 NMSSH 库从 SFTP 下载文件时出现问题
- javascript - 如何制作显示反转输入的文本框
- android - Kivy:[WindowSDL] 未找到正在运行的应用程序,退出
- material-ui - 自定义主题 - 自定义嵌套组件
- nginx - 拒绝将表单数据发送到“域”,因为它违反了以下内容安全策略指令
- r - 如何正确关闭 R 的一个实例以正确安装 tidyverse 包(没有错误)?
- javascript - 相位器 3 上未定义噪声(柏林噪声)