ArgumentOutOfRangeException was Unhandled C# error

本文关键字:error Unhandled was ArgumentOutOfRangeException | 更新日期: 2023-09-27 17:57:10

InvalidArgument=Value of '4' 对 'index' 无效。参数名称:索引

这是我的代码

   if (lvnames.Items.Count > 0)
   {
         for (int x = 0; x < lvScratch.Items.Count; x++)
         {
           **lvnames.Items[x].SubItems[4].Text = lvnamestemp.Items[x].SubItems[0].Text;**
         }
   }
   else
   {
            MessageBox.Show("No Record", "Empty", MessageBoxButtons.OK, MessageBoxIcon.Information);
   }

我的绿名。项目有 4 列我的 lvnametemp 有 3 列

当我运行代码时,我在粗体代码上收到错误 InvalidArgument=值为"4"

ArgumentOutOfRangeException was Unhandled C# error

" 我的 lvnames。项目有 4 列"

但是您正在使用以下代码访问第 5 列:

lvnames.Items[x].SubItems[4]

0 1 2 3 4(4 是第五项)。

几乎所有数组和集合在 .NET 中都是从零开始的。 列表视图中的实际列数与列表视图项中的子项数无关;重要的是您添加的子项的数量。 通常它们是相同的。 如果您有四列,那么您可能添加了四个子项,因此它们将位于索引 0、1、2 和 3 处。 显然,4 不是一个有效的索引。