2012-10-05 38 views
-4

我用List来存储值,如果数据是有限的,它的工作正常,如果数据在计数中超过15o,那么我得到以下错误 索引超出了数组的范围...... Plz提出了一个想法来解决这个问题。如何解决这个错误:索引超出了数组的边界

List<string> code = new List<string>(); 
private void btn_browse_Click(object sender, EventArgs e) 
{ 
    DialogResult fileopen = openFileDialog1.ShowDialog(); 
    string filename = openFileDialog1.FileName;   
    txt_filename.Text = filename; 
    try 
    { 
     StreamReader readtxtfile = new StreamReader(filename); 
     String line = null; 

     string str = null; 
     char[] separate = { ',' }; 
     string[] words; 
     while ((str = readtxtfile.ReadLine()) != null) 
     { 
      words = str.Split(separate);       
      code.Add(Convert.ToString(words[0]) + '-' + Convert.ToString(words[2]).Trim()); 
     }      
    } 
+2

...做出更大的数组?动态扩展它?如果您不想提供更多详细信息,则无法提供帮助。 – nneonneo

+1

你能粘贴一些代码吗? – secondflying

+1

你能告诉我们一些你访问数据的代码吗? – CrazyCasta

回答

1

此错误不是因为您的列表,而是来自您的数组“单词”。数组的第一个检查长度这样

words = str.Split(separate); 
if(words.Length>2) 
{      
    code.Add(Convert.ToString(words[0]) + '-' + Convert.ToString(words[2]).Trim()); 
} 

确保每当数组的长度小于2就不会在你的列表中添加。

希望这有助于...

+0

谢谢你manish,现在它的工作 –

1

很难帮忙看看没有代码。

检查以确保您的indexOutOfBounds错误来自您的列表,而不是您的拆分字符串以及。

+0

嗨,我现在添加了代码 –

相关问题