The following Script shows the
"index was outside the bounds of the array"
at line
for (int i = 0; i <u_f.GetLength(1); i++)
when I change it to
for (int i = 0; i <=u_f.GetLength(1); i++)
it shows
"Input string was not in a correct format"
error in line int uid = Convert.ToInt32(txtbx_id.Text);
        float userscore,itemscore,result;
        string lineitem, lineuser;
        //float[][] a = new float[89395][100];
        //float[][] b = new float[1143600][100];
        float[][] a = Enumerable.Range(0, 89395).Select(i => new float[100]).ToArray();
        float[][] b = Enumerable.Range(0, 1143600).Select(j => new float[100]).ToArray();
        //float[,] c = new float[89395, 100];
        StreamReader fileitem = new StreamReader("c:\\1.txt");
        StreamReader fileuser = new StreamReader("c:\\2.txt");
    public Form1()
    {
        InitializeComponent();
        for (int x = 0; x <= 8939500; x++)
        {
            lineuser = fileuser.ReadLine();
            if (!string.IsNullOrEmpty(lineuser))
            {
                string[] values = lineuser.Split(' ');
                int userid, factoriduser;
                foreach (string value in values)
                {
                    userid = Convert.ToInt32(values[0]);
                    factoriduser = Convert.ToInt32(values[1]);
                    userscore = Convert.ToSingle(values[2]);
                    a[userid][factoriduser] = userscore;
                }
            }
        }
        for (int y = 0; y <= 114360000; y++)
        {
            lineitem = fileitem.ReadLine();
            if (!string.IsNullOrEmpty(lineitem))
            {
                string[] valuesi = lineitem.Split(' ');
                int itemid, factoriditem;
                foreach (string value in valuesi)
                {
                    itemid = Convert.ToInt32(valuesi[0]);
                    factoriditem = Convert.ToInt32(valuesi[1]);
                    itemscore = Convert.ToSingle(valuesi[2]);
                    b[itemid][factoriditem] = itemscore;
                }
            }
        }
    }
    public float dotproduct(int userid,int itemid)
    {
        //get the score of 100 from user and item to dotproduct
        float[] u_f = a[userid];
        float[] i_f = b[itemid];
        for (int i = 0; i <u_f.GetLength(1); i++)  //<----error
        {
            result += u_f[userid] * i_f[itemid];
        }
        return result;
    }
    private void btn_recomm_Click(object sender, EventArgs e)
    {
        if(txtbx_id.Text==null)
        {
            MessageBox.Show("please insert user id");
        }
     if (txtbx_id.Text != null && txtbx_itemid==null)
      {
       int sc = Convert.ToInt32(txtbx_id.Text);
       if (sc>=0 &&sc<=89395)
        {
          for (int z=0;z<=1143600;z++)
            {
              dotproduct(sc,z);
            }
          Hashtable hashtable = new Hashtable();
           //put the result in hashtable
             foreach (DictionaryEntry entry in hashtable)
               {
                 System.Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
               }
        }
     }
        if (txtbx_id!=null && txtbx_itemid!=null)
        {
            int uid = Convert.ToInt32(txtbx_id.Text);     //<----error
            int iid = Convert.ToInt32(txtbx_itemid.Text); 
            {
                if (uid>=0 && uid<=89395 && iid>=0 && iid<=1143600)
                {
                    dotproduct(uid,iid);
                    MessageBox.Show("The Score of user id "+uid+" is "+result);
                }
            }
        }
 
     
     
     
     
     
    