private void 英汉词典_Load(object sender, EventArgs e)
        {
            toolTip1.InitialDelay = 0;
            toolTip1.ReshowDelay = 0;
            toolTip1.SetToolTip(textBox1, "请输入您要查找的单词");
            for (int i = 0; i < strArr.Length; i++)
            {
                string[] strArr1 = strArr[i].Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
                if ((dic.Keys.Contains(strArr1[0]) == false)||(strArr1.Length > 1))
                {
                    dic.Add(strArr1[0], strArr1[1]);                }
            }
        }就这样求解

解决方案 »

  1.   

    if ((dic.Keys.Contains(strArr1[0]) == false) && (strArr1.Length > 1))
      

  2.   

    if (strArr1.Length > 1 && (dic.Keys.Contains(strArr1[0]) == false))
      

  3.   


            private void 英汉词典_Load(object sender, EventArgs e)
            {
                toolTip1.InitialDelay = 0;
                toolTip1.ReshowDelay = 0;
                toolTip1.SetToolTip(textBox1, "请输入您要查找的单词");
                for (int i = 0; i < strArr.Length; i++)
                {
                    string[] strArr1 = strArr[i].Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                    if (strArr1.Length <= 1)
                    {
                        continue;
                    }                if (!dic.ContainsKey(strArr1[0]))
                    {
                        dic.Add(strArr1[0], strArr1[1]);
                    }
                }
            }
      

  4.   

     string[] strArr1 = strArr[i].Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
                    if ((strArr1.Length > 1) && (dic.Keys.Contains(strArr1[0]) == false))
                    {
                        dic.Add(strArr1[0], strArr1[1]); 
                    } 
    还是不可以、、、
      

  5.   

    还是不行。另外为什么是if (strArr1.Length <= 1)呢
      

  6.   

    if (strArr1.Length > 1 && (dic.Keys.Contains(strArr1[0]) == false))
    {
        // strArr1.Length > 1 这个成立,Length 起码是 2,怎么还可能越界
        dic.Add(strArr1[0], strArr1[1]); 
    }
      

  7.   

    楼主的for语句这样写:
    for (int i = strArr.Length-1; i > 0; i--)
       {
     }
      

  8.   

    楼主你确定strArr1.Length>1么,查看一下你的split之后有多少个字符串吧,有可能是这个数组越界
      

  9.   

    我想了想 可能是数据库连接有问题吧  看我的代码
    Dictionary<string, string> dic = new Dictionary<string, string>();
            string[] strArr = File.ReadAllLines(@"C:\Users\Administrator\Documents\Visual Studio 2008\Projects\EcDictionary\EcDictionary\bin\Debug\EcDict.mdb", Encoding.Default);
    不知道对不对?
      

  10.   

    这样没什么问题,你再调试下,异常中断时,你看下 strArr1.Length 是多少,strArr1 里有些什么