我有会员数据库,其中包含角色表中定义的角色。现在我想根据角色表中存在的角色数量动态创建数据表...
这是我的代码..
DataTable dTable = new DataTable();
string[] rolesarr = Roles.GetAllRoles();
int length = rolesarr.Count();
for (int i = 0; i <= length; i++)
{
string colname = rolesarr[i];
if (i == 0)
{
dTable.Columns.Add(colname, typeof(string));
}
else
{
dTable.Columns.Add(colname, typeof(bool));
}
}
但它正在给出错误
“System.IndexOutOfRangeException:索引超出了数组的范围。”
任何帮助都将受到高度赞赏。 提前谢谢..
答案 0 :(得分:4)
更改您的
i <= length
到
i < length
因为数组是基于零的。他们的界限是0
到length - 1
。
来自Arrays (C# Programming Guide)
数组是零索引的:具有 n 元素的数组从 0 索引到 的 N-1 强>
例如,当您声明一个包含5个元素的数组时,如<; p>
int[] array = new int[5];
您的元素从0
到4
的索引类似;
array[0]
array[1]
array[2]
array[3]
array[4]