C# for 循环。索引超出范围

标签 c#

我收到以下错误:

Index was outside the bounds of the array

for循环代码:

for (int i = 0; i < listEquipment.Items.Count - 1; i++)
{
   SqlCommand cmd = new SqlCommand("INSERT INTO [dbo].[EquipmentItems] ([RequestID], [TypeID]) VALUES (@RequestID, @TypeID)", conn);
   cmd.Parameters.Add("@RequestID", SqlDbType.Int).Value = userRequest;
   cmd.Parameters.Add("@TypeID", SqlDbType.Int).Value = (listEquipment.SelectedItems[i] as Equipment).equipmentID;
   cmd.ExecuteNonQuery();
}

出错的行:

cmd.Parameters.Add("@TypeID", SqlDbType.Int).Value = (listEquipment.SelectedItems[i] as Equipment).equipmentID;

求助!我是编程新手。

最佳答案

您循环所有项目,然后在 listEquipment.SelectedItems[i] 中访问该索引。但是可能没有选择所有项目,这意味着这个集合较小,您无法访问它。

所以我假设你不想循环所有项目而只是选择,所以使用:

for (int i = 0; i < listEquipment.SelectedItems.Count; i++)
{

}

关于C# for 循环。索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53298834/

相关文章:

c# - 在 C# 中 Dispose 和设置对 null 的引用有什么区别?

c# - 如何从列表中删除空字符串,然后从列表中删除重复值

c# - Linq确定一个值是否出现超过x次

c# - FileStream.BeginWrite 优于 FileStream.Write?

c# - 返回表面上所有矩形的高效算法

c# - 连接到 Com5 : System. NullReferenceException 未处理

c# - 使一个值的 50% 成为另一个变量的最大值(0%/100% 等于最小值)

c# - 使用 EntityFramework.CodeTemplates 对现有数据库进行逆向工程会出现错误

java - 无工厂策略模式中开关应该放在哪里?

c# - http请求不包含.net core 2.1中createresponse的定义