dictionaryMy codeprotected void Page_Load(object sender, EventArgs e) { Dictionary<int, Dictionary<int, List<int>>> outerDictionary = new Dictionary<int, Dictionary<int, List<int>>>(); Dictionary<int, List<int>> innerDictionary; ArrayList arrPayPeriodID = new ArrayList(); ArrayList arrPayYear = new ArrayList(); ArrayList arrEmpID = new ArrayList(); int[] ipayYear = new int[] { }; int[] iPayPeriodID = new int[] { }; int[] iEmpID = new int[] { }; int ipayYr = 2011; int ipayYr1 = 2011; int ipayYr2 = 2012; int ipayYr3 = 2012; int PayPeriodID = 1; int payperiodid1 = 2; int payperiodid2 = 2; int payperiodid3 = 2; int EmpID = 1; int EmpID1 = 1; int EmpID2 = 1; int EmpID3 = 1; arrEmpID.Add(EmpID); arrEmpID.Add(EmpID1); arrEmpID.Add(EmpID2); arrEmpID.Add(EmpID3); arrPayPeriodID.Add(PayPeriodID); arrPayPeriodID.Add(payperiodid2); arrPayPeriodID.Add(payperiodid3); arrPayPeriodID.Add(payperiodid1); arrPayYear.Add(ipayYr); arrPayYear.Add(ipayYr1); arrPayYear.Add(ipayYr2); arrPayYear.Add(ipayYr3); iEmpID = (int[])arrEmpID.ToArray(typeof(int)); iPayPeriodID = (int[])arrPayPeriodID.ToArray(typeof(int)); ipayYear = (int[])arrPayYear.ToArray(typeof(int)); DataTable table = GetTable(iEmpID, ipayYear, iPayPeriodID); DataRow row = table.Rows[0]; for (int i = 0; i < table.Rows.Count; i++) { DataRow row1 = table.Rows[i]; var employeeId = (int)row1["EmpID"]; var payYear = (int)row1["Year"]; var payId = (int)row1["PayID"]; if (!outerDictionary.TryGetValue(employeeId, out innerDictionary)) { innerDictionary = new Dictionary<int, List<int>>(); outerDictionary.Add(employeeId, innerDictionary); } List<int> list; if (!innerDictionary.TryGetValue(payYear, out list)) { list = new List<int>(); innerDictionary.Add(payYear, list); } list.Add(payId); } } static DataTable GetTable(int[] empID, int[] payYr, int[] payID) { // Here we create a DataTable with four columns. DataTable table = new DataTable(); table.Columns.Add("EmpID", typeof(int)); table.Columns.Add("Year", typeof(int)); table.Columns.Add("PayID", typeof(int)); // Here we add five DataRows. for (int i = 0; i < empID.Length; i++) { table.Rows.Add(empID[i], payYr[i], payID[i]); } return table; }