当我为 C# Windows 窗体应用程序请求列表中的最后一个元素时,出现索引越界错误。
有谁知道可能导致这种情况的原因,因为它实际上没有任何意义。就好像电脑计算错误一样。大小应该是 17,但索引 5 以上的所有内容都会出错。一旦逻辑消失,我就什么都没有了。也许其他人以前可能遇到过幕后发生的一些奇怪的事情?
List<string> words = new List<string>();
List<string> words = new List<string>();
string word = "";
int idx = 0;
while (idx < notes.Length)
{
word += notes[idx];
if (notes[idx] == ' ')
{
words.Add(word);
word = "";
}
++idx;
}
string notes1 = "";
string notes2 = "";
string notes3 = "";
int one_third = words.Count / 3;
int two_thirds = (words.Count / 3) * 2;
int k;
for (k = 0; k < one_third; k++)
notes1 += words.ElementAt(k) + ' ';
for (k = one_third; k < two_thirds; k++)
notes2 += words[k] + ' ';
for (k = two_thirds; k < words.Count; k++)
notes3 += words[k] + ' ';
notesLabel1.Text = notes1;
notesLabel2.Text = notes2;
notesLabel3.Text = notes3;
++++++++++++++++++++++++++++++++++++++++++++++++++
发现问题了!!!!!!
基本上,我昨天劳累过度,所以我的大脑在一天结束时被炸了,我很烦躁。函数代码工作得很好,除非像许多人所说的那样,注释字符串是空的。我知道 notes 字符串不是空的,因为它在 for 循环中没有 +1 部分就可以正常发布。但我忘记了一件事。发布到表单的第一个“项目”是我程序中数组中的第一个“项目”。尽管有问题的项目注释确实有 17 个单词,但它是列表中的第二个项目。列表中的第一项在应用程序加载时发布,我只需滚动到带有 17 个单词注释的项目。发布的第一个项目没有注释,因此第一次调用该函数时,参数是一个空字符串。哎呀!感觉很笨
感谢大家!!感谢您抽出宝贵时间帮助解决我的废话。哈哈