-4

リストを使用して値を保存しました。データが制限されている場合は正しく機能します。データがカウントで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());  
        }                    
    }
4

1 に答える 1

1

このエラーはリストが原因ではありませんが、配列の「単語」が原因です。このような配列の長さを最初に確認します

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

配列の長さが 2 未満の場合はリストに追加されないことを確認してください。

お役に立てれば...

于 2012-10-05T07:29:41.220 に答える