public static teacherdata getdataSet(string dataLine)
        {
            string[]    dataSet  = dataLine.Split(',');
            teacherdata teachers = new teacherdata();

            teachers.Name   = Convert.ToString(dataSet[0]);
            teachers.Office = Convert.ToString(dataSet[1]);
            teachers.Email  = Convert.ToString(dataSet[2]);
            return(teachers);
        }
        static void Main(string[] args)
        {
            //get them classes boi
            classdata[]   dataTable    = new classdata[231];
            teacherdata[] teachTable   = new teacherdata[30];
            int           entriesFound = 0;

            using (var textReader = new StreamReader("Courses.csv")) {
                string line      = textReader.ReadLine();
                int    skipCount = 0;
                while (line != null && skipCount < 1)
                {
                    line = textReader.ReadLine();
                    skipCount++;
                }
                while (line != null)
                {
                    // string[] columns = line.Split(',');
                    //perform your logic
                    dataTable[entriesFound] = classdata.getdataSet(line);

                    entriesFound++;
                    line = textReader.ReadLine();
                }
            }

            //get them teachers boi
            int entries = 0;

            using (var textReader = new StreamReader("Instructors.csv"))
            {
                string line      = textReader.ReadLine();
                int    skipCount = 0;
                while (line != null && skipCount < 1)
                {
                    line = textReader.ReadLine();
                    skipCount++;
                }
                while (line != null)
                {
                    // string[] columns = line.Split(',');
                    //perform your logic
                    teachTable[entries] = teacherdata.getdataSet(line);

                    entries++;
                    line = textReader.ReadLine();
                }
            }

            /*
             *
             * // test that table wrote data correctly
             * for(int i = 0; i < dataTable.Length; i++) {
             *  Console.WriteLine(dataTable[i].subject + dataTable[i].courseCode + " " + dataTable[i].courseTitle);
             * }
             *
             * for(int i = 0; i < teachTable.Length; i++) {
             *  Console.WriteLine(teachTable[i].Name + teachTable[i].Office + " " + teachTable[i].Email);
             * }
             *
             *
             */

            //Time for queries!

            //1.2a

            IEnumerable <object> IEEQuery = (
                from courses in dataTable
                where courses.courseCode >= 300 && courses.subject == "IEE"
                orderby courses.instructor ascending
                select courses
                );

            Console.WriteLine("1.2a Query Results \n\n Course Title \t  | \t instructor \n--------------------------------------------|");
            foreach (classdata courses in IEEQuery)
            {
                Console.WriteLine(courses.courseTitle + " | " + courses.instructor + "\n--------------------------------------------|");
            }


            //1.2b

            var groupedQuery = (
                from courses in dataTable
                group courses by courses.subject into g1
                from g2 in
                (from courses in g1
                 group courses by courses.courseCode)
                group g2 by g1.Key

                );

            Console.WriteLine("1.2b Query Results \n--------------------------------------------|");
            foreach (var g in groupedQuery)
            {
                Console.WriteLine("For the course subject: " + g.Key);
                foreach (var g2 in g)
                {
                    Console.WriteLine("----------------------------\nFor the course code: " + g2.Key);
                    foreach (var element in g2)
                    {
                        if (g2.Count() > 1)
                        {
                            Console.WriteLine("\n" + element.subject + " " + element.courseCode + "\n");
                        }
                        else
                        {
                            Console.WriteLine("No values found");
                        }
                    }
                }
            }


            //1.5

            var teacherQuery = (
                from courses in dataTable
                join teachers in teachTable on courses.instructor equals teachers.Name
                where courses.courseCode >= 200 && courses.courseCode < 300
                orderby courses.courseCode ascending
                select new {
                subj = courses.subject,
                code = courses.courseCode,
                email = teachers.Email
            }
                );

            Console.WriteLine("1.5 Query Results \n--------------------------------------------");
            foreach (var tuple in teacherQuery)
            {
                Console.WriteLine(tuple.subj + "\t|" + tuple.code + "\t|" + tuple.email);
            }
        }