0

I tried to create data by using code first to finish my OOP assignment. However, when I created connections among class, I encountered a problem: System.ArgumentOutOfRangeException: 'Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index' Please help me. Thank you so much. Here is the error: enter image description here Here are my code: `

public class Program
    {
        public static List<T_KhachHang> ds_KhachHang = new List<T_KhachHang>();
        public static List<T_ThueDia> ds_ThueDia = new List<T_ThueDia>();
        public static List<T_Dia> ds_Dia = new List<T_Dia>();
        public static List<T_Dia_Phim> ds_DiaPhim = new List<T_Dia_Phim>();
        public static List<T_Phim> ds_Phim = new List<T_Phim>();
        public static List<T_Phim_DienVien> ds_PhimDienVien = new List<T_Phim_DienVien>();
        public static List<T_DienVien> ds_DienVien = new List<T_DienVien>();

        public static void TaoDanhSachKhachHang()
        {
            ds_KhachHang.Add(new T_KhachHang("KH0001", "Nguyen Van Nam", "123 Vo Van Ngan"));
            ds_KhachHang.Add(new T_KhachHang("KH0002", "Le Thanh Nhan", "321 Dang Van Bi"));
            ds_KhachHang.Add(new T_KhachHang("KH0003", "Tran Hung", "213 Kha Van Can"));

            ds_ThueDia[0].maKhachHang = ds_KhachHang[0].maKhachHang;
            ds_ThueDia[1].maKhachHang = ds_KhachHang[0].maKhachHang;
            ds_ThueDia[2].maKhachHang = ds_KhachHang[0].maKhachHang;
            ds_ThueDia[3].maKhachHang = ds_KhachHang[1].maKhachHang;
            ds_ThueDia[4].maKhachHang = ds_KhachHang[1].maKhachHang;
            ds_ThueDia[5].maKhachHang = ds_KhachHang[1].maKhachHang;
            ds_ThueDia[5].maKhachHang = ds_KhachHang[1].maKhachHang;
        }

        public static void TaoDanhSachDia()
        {
            ds_Dia.Add(new T_Dia("D0001", "Tuyen Phim Vo Song Huong"));
            ds_Dia.Add(new T_Dia("D0002", "Tuyen Phim Ly Hung"));
            ds_Dia.Add(new T_Dia("D0003", "Tuyen Phim Quang Dai"));
            ds_Dia.Add(new T_Dia("D0004", "Tuyen Phim Chi Tai"));
            ds_Dia.Add(new T_Dia("D0005", "Tuyen Phim Hoai Linh - Chi Tai"));

            ds_ThueDia[0].maDia = ds_Dia[0].maDia;
            ds_ThueDia[1].maDia = ds_Dia[1].maDia;
            ds_ThueDia[2].maDia = ds_Dia[2].maDia;
            ds_ThueDia[3].maDia = ds_Dia[1].maDia;
            ds_ThueDia[4].maDia = ds_Dia[3].maDia;
            ds_ThueDia[5].maDia = ds_Dia[4].maDia;
            ds_ThueDia[6].maDia = ds_Dia[5].maDia;
            /*    thueDia[0].dsDia.Add(dia[0]);
                thueDia[0].dsDia.Add(dia[1]);

                thueDia[1].dsDia.Add(dia[3]);
                thueDia[1].dsDia.Add(dia[4]);

                thueDia[2].dsDia.Add(dia[2]);*/

        }

        public static void TaoDanhSachThueDia()
        {
            ds_ThueDia.Add(new T_ThueDia("", "", "9/9/2021", "15/9/2021"));
            ds_ThueDia.Add(new T_ThueDia("", "", "10/10/2021", null));
            ds_ThueDia.Add(new T_ThueDia("", "", "6/10/2021", "10/10/2021"));
            ds_ThueDia.Add(new T_ThueDia("", "", "4/10/2021", null));
            ds_ThueDia.Add(new T_ThueDia("", "", "25/8/2021", null));
            ds_ThueDia.Add(new T_ThueDia("", "", "4/10/2021", "10/10/2021"));
            ds_ThueDia.Add(new T_ThueDia("", "", "25/8/2021", null));

            ds_KhachHang[0].dsThueDia.Add(ds_ThueDia[0]);
            ds_KhachHang[0].dsThueDia.Add(ds_ThueDia[1]);
            ds_KhachHang[0].dsThueDia.Add(ds_ThueDia[2]);
            ds_KhachHang[0].dsThueDia.Add(ds_ThueDia[3]);
            ds_KhachHang[1].dsThueDia.Add(ds_ThueDia[4]);
            ds_KhachHang[1].dsThueDia.Add(ds_ThueDia[5]);
            ds_KhachHang[1].dsThueDia.Add(ds_ThueDia[6]);

            ds_Dia[0].thueDia.Add(ds_ThueDia[0]);
            ds_Dia[1].thueDia.Add(ds_ThueDia[1]);
            ds_Dia[2].thueDia.Add(ds_ThueDia[2]);
            ds_Dia[1].thueDia.Add(ds_ThueDia[3]);
            ds_Dia[3].thueDia.Add(ds_ThueDia[4]);
            ds_Dia[4].thueDia.Add(ds_ThueDia[5]);
            ds_Dia[5].thueDia.Add(ds_ThueDia[6]);
        }


        public static void TaoDanhSachDiaPhim()
        {
            ds_DiaPhim.Add(new T_Dia_Phim("", ""));
            ds_DiaPhim.Add(new T_Dia_Phim("", ""));
            ds_DiaPhim.Add(new T_Dia_Phim("", ""));
            ds_DiaPhim.Add(new T_Dia_Phim("", ""));
            ds_DiaPhim.Add(new T_Dia_Phim("", ""));
            /*   diaPhim.Add(new T_Dia_Phim(dia[0], phim[1]));
               diaPhim.Add(new T_Dia_Phim(dia[0], phim[2]));
               diaPhim.Add(new T_Dia_Phim(dia[0], phim[3]));
               diaPhim.Add(new T_Dia_Phim(dia[1], phim[8]));
               diaPhim.Add(new T_Dia_Phim(dia[1], phim[9]));
               diaPhim.Add(new T_Dia_Phim(dia[2], phim[4]));
               diaPhim.Add(new T_Dia_Phim(dia[2], phim[5]));
               diaPhim.Add(new T_Dia_Phim(dia[3], phim[6]));
               diaPhim.Add(new T_Dia_Phim(dia[4], phim[7]));
               ds_Dia[0].maDia, */
            ds_Dia[0].diaPhim = new T_Dia_Phim(ds_DiaPhim[0]);
            ds_Dia[1].diaPhim = new T_Dia_Phim(ds_DiaPhim[1]);
            ds_Dia[2].diaPhim = new T_Dia_Phim(ds_DiaPhim[2]);
            ds_Dia[3].diaPhim = new T_Dia_Phim(ds_DiaPhim[3]);
            ds_Dia[4].diaPhim = new T_Dia_Phim(ds_DiaPhim[4]);

            ds_Phim[0].diaPhim = new T_Dia_Phim(ds_DiaPhim[0]);
            ds_Phim[1].diaPhim = new T_Dia_Phim(ds_DiaPhim[0]);
            ds_Phim[2].diaPhim = new T_Dia_Phim(ds_DiaPhim[0]);
            ds_Phim[3].diaPhim = new T_Dia_Phim(ds_DiaPhim[0]);
            ds_Phim[4].diaPhim = new T_Dia_Phim(ds_DiaPhim[2]);
            ds_Phim[5].diaPhim = new T_Dia_Phim(ds_DiaPhim[2]);
            ds_Phim[6].diaPhim = new T_Dia_Phim(ds_DiaPhim[3]);
            ds_Phim[7].diaPhim = new T_Dia_Phim(ds_DiaPhim[4]);
            ds_Phim[8].diaPhim = new T_Dia_Phim(ds_DiaPhim[1]);
            ds_Phim[9].diaPhim = new T_Dia_Phim(ds_DiaPhim[1]);
        }

        
        public static void TaoDanhSachPhim()
        {
            ds_Phim.Add(new T_Phim("P001", "Dong doi"));
            ds_Phim.Add(new T_Phim("P002", "Mat troi dem"));
            ds_Phim.Add(new T_Phim("P003", "Bong hoa rung Sac"));
            ds_Phim.Add(new T_Phim("P004", "Nguoi dep Tay Do"));
            ds_Phim.Add(new T_Phim("P005", "Mui ngo gai"));
            ds_Phim.Add(new T_Phim("P006", "Xom suoi sau"));
            ds_Phim.Add(new T_Phim("P007", "Lau dai tinh ai"));
            ds_Phim.Add(new T_Phim("P008", "Xom tro"));
            ds_Phim.Add(new T_Phim("P009", "Pham Cong Cuc Hoa"));
            ds_Phim.Add(new T_Phim("P0010", "Dollar trang"));

            ds_DiaPhim[0].dsPhim.Add(ds_Phim[0]);
            ds_DiaPhim[0].dsPhim.Add(ds_Phim[1]);
            ds_DiaPhim[0].dsPhim.Add(ds_Phim[2]);
            ds_DiaPhim[0].dsPhim.Add(ds_Phim[3]);

            ds_DiaPhim[1].dsPhim.Add(ds_Phim[8]);
            ds_DiaPhim[1].dsPhim.Add(ds_Phim[9]);

            ds_DiaPhim[2].dsPhim.Add(ds_Phim[4]);
            ds_DiaPhim[2].dsPhim.Add(ds_Phim[5]);

            ds_DiaPhim[3].dsPhim.Add(ds_Phim[6]);
            ds_DiaPhim[4].dsPhim.Add(ds_Phim[7]);



        }

        public static void TaoDanhSachDienVien()
        {
            ds_DienVien.Add(new T_DienVien("DV0001", "Vo Song Huong", "Viet Nam"));
            ds_DienVien.Add(new T_DienVien("DV0002", "Ly Hung", "Viet Nam"));
            ds_DienVien.Add(new T_DienVien("DV0003", "Quang Dai", "Viet Nam"));
            ds_DienVien.Add(new T_DienVien("DV0004", "Chi Tai", "My"));
            ds_DienVien.Add(new T_DienVien("DV0005", "Hoai Linh", "My"));


        }

        public static void TaoDanhSachPhimDienVien()
        {
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[0].maPhim, ds_DienVien[0].maDienVien, true ));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[1].maPhim, ds_DienVien[0].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[2].maPhim, ds_DienVien[0].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[3].maPhim, ds_DienVien[0].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[4].maPhim, ds_DienVien[2].maDienVien, false));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[5].maPhim, ds_DienVien[2].maDienVien, false));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[6].maPhim, ds_DienVien[3].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[7].maPhim, ds_DienVien[3].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[8].maPhim, ds_DienVien[4].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[8].maPhim, ds_DienVien[1].maDienVien, true));
            ds_PhimDienVien.Add(new T_Phim_DienVien(ds_Phim[9].maPhim, ds_DienVien[1].maDienVien, true));

            ds_DienVien[0].phimDV.Add(ds_PhimDienVien[0]);
            ds_DienVien[0].phimDV.Add(ds_PhimDienVien[1]);
            ds_DienVien[0].phimDV.Add(ds_PhimDienVien[2]);
            ds_DienVien[0].phimDV.Add(ds_PhimDienVien[3]);
            ds_DienVien[2].phimDV.Add(ds_PhimDienVien[4]);
            ds_DienVien[2].phimDV.Add(ds_PhimDienVien[5]);
            ds_DienVien[3].phimDV.Add(ds_PhimDienVien[6]);
            ds_DienVien[3].phimDV.Add(ds_PhimDienVien[7]);
            ds_DienVien[4].phimDV.Add(ds_PhimDienVien[8]);
            ds_DienVien[4].phimDV.Add(ds_PhimDienVien[9]);
            ds_DienVien[1].phimDV.Add(ds_PhimDienVien[10]);
        }

        public static void Linq01()
        {
            var ds_kh = ds_KhachHang.Select(kh => kh);

            foreach(var k in ds_kh)
            {
                Console.WriteLine("{0} - {1} - {2}", k.maKhachHang, k.tenKhachHang, k.diaChi);
              //  foreach (var phim in dia.phim)
             //       Console.WriteLine("{0} - {1}", phim.maPhim, phim.tenPhim);
            }
        }

     /*   public static void Linq02()
        {
            foreach (var pdv in phimDV)
            {
                Console.WriteLine(pdv.maPhim, pdv.phim, pdv.dv.maDienVien, pdv.dv.tenDienVien, pdv.dv.quocTich);
            }
        }*/

        public static void Main(string[] args)
        {
            TaoDanhSachDienVien();
            TaoDanhSachPhim();
            TaoDanhSachKhachHang();
            TaoDanhSachDia();
            TaoDanhSachThueDia();
            TaoDanhSachDiaPhim();
            TaoDanhSachPhimDienVien();
           
            Linq01();
      //      Linq02();

            Console.ReadKey();
        }
    }
}

`

  • 1
    Does this answer your question? [What is an IndexOutOfRangeException / ArgumentOutOfRangeException and how do I fix it?](https://stackoverflow.com/questions/20940979/what-is-an-indexoutofrangeexception-argumentoutofrangeexception-and-how-do-i-f) – Yong Shun Nov 21 '21 at 04:52
  • We can only assume that `TaoDanhSachPhim` is called “BEFORE” `TaoDanhSachDiaPhim` is called. Given the index out of range error… and it appears that `ds_Phim` does indeed have data, then that only leaves `ds_DiaPhi` as the offending code causing the index exception. – JohnG Nov 21 '21 at 05:26
  • It seems that you are trying to reference a 6th element of `ds_Dia` whereas you only have 5 elements in that array. – RWRkeSBZ Nov 22 '21 at 10:27

0 Answers0