【发布时间】:2014-10-23 06:02:36
【问题描述】:
我是编程新手.. 我无法找到字符串 [] 的解决方案索引超出了数组解决方案的范围..- 谁能解释一下,下面的代码中有什么错误。声明数组并动态限制它的正确方法是什么?这样做会好吗? -
我想在 FOR 循环中获取数组的值 - 比如 TOkenlist[]={1,2,3}
但我想在 FOR LOOP 中做
Tokenlist[0] = "1";
Tokenlist[1] = "2";
Tokenlist[2] = "3";
//MY CODE FOLLOWS
string[] Tokenlist;
string[] MassageTokenList;
if (!(Convert.ToInt16(val_PhysioNumber.Text) == 0))
{
for (i=1; i <= Convert.ToInt16(val_PhysioNumber.Text); i++)
{
Tokenlist = new string[i];
SqlCommand cmd = new SqlCommand("ClinicalInvoicing", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@name", txt_NameClinical.Text);
cmd.Parameters.AddWithValue("@natID", txt_NatIDClinical.Text);
cmd.Parameters.AddWithValue("@memberType", MemType);
cmd.Parameters.AddWithValue("@serviceType", 1);
string Token = cmd.ExecuteScalar().ToString();
if (Token != "")
{
Tokenlist[i] = Token;
}
}
}
我们将不胜感激任何帮助
【问题讨论】:
-
当您寻求异常帮助时,您应该在问题中包含异常!!!!!!
-
您的代码中有 2 个我可以看到的问题: 1. Tokenlist[i] 如果您使用例如 new String[i] 创建一个数组,这意味着您在其中有 i 个元素但是索引从 0 到 (i-1)。因此 Tokenlist[i] 抛出一个越界的异常。 2. 您在 foreach 的每次迭代中都在执行 Tokenlist = new String[i] ,这意味着您在 foreach 循环的每次迭代中都在重新创建整个数组。我不认为这是你打算做的。如果你真的想要一个不断增长的令牌列表而不必做很多额外的编码,你应该考虑
-
使用 List
并在 foreach 之外声明它,然后使用 tokenlist.Add 添加令牌(否则不会变得更容易) -
@John3136 告诉你我正在寻找一个例外。
-
@sriram Sakthivel - 我的问题是关于我自己的代码。 - 这与任何其他问题都不相似。