public static MyListData GetSchedule()
        {
            MyListData objTab = new MyListData();

            objTab.HeaderItems = new List <HeaderItem>();

            //Header loop works perfectly
            for (int x = 0; x < 7; x++)
            {
                HeaderItem objItem = new HeaderItem();
                objItem.strHeadName = x;
                objTab.HeaderItems.Add(objItem);
            }

            objTab.MatrixItems = new List <MatrixItem>();
            for (int x = 0; x < 7; x++)
            {
                MatrixItem objItem = new MatrixItem();
                objItem.nHRJobID = x;
                objTab.MatrixItems.Add(objItem);
            }

            //Only adds the last one Need ALL

            return(objTab);
        }
        static void Main(string[] args)
        {
            Console.WriteLine("Original GetSchedule:");
            MyListData mld = GetSchedule();

            for (int i = 0; i < mld.HeaderItems.Count; i++)
            {
                Console.WriteLine(string.Format("HeaderItem: {0}, MatrixItem: {1}", mld.HeaderItems[i].strHeadName, mld.MatrixItems[i].nHRJobID));
            }

            Console.WriteLine();

            Console.WriteLine("Tuple GetSchedule:");
            var list = GetScheduleCombined();

            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(string.Format("HeaderItem: {0}, MatrixItem: {1}", list[i].Item1.strHeadName, list[i].Item2.nHRJobID));
            }
            Console.WriteLine();
            Console.WriteLine("combined GetSchedule:");
            var clist = GetScheduleCombined2();

            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine(string.Format("HeaderItem: {0}, MatrixItem: {1}", clist[i].hdrItm.strHeadName, clist[i].mtxItm.nHRJobID));
            }
            Console.ReadKey();
        }