public void Compare(String oldFile, String newFile, String outFile) { List <String> compOld = CSVTools.LoadCSV(oldFile); List <String> compNew = CSVTools.LoadCSV(newFile); DataTable tableOld = CSVTools.ConvertToDataTable(compOld); DataTable tableNew = CSVTools.ConvertToDataTable(compNew); try { // remove unnessesary columns here for (int i = tableOld.Rows.Count - 1; i >= 0; i--) { foreach (DataRow dr in config.pruneItems.Rows) { if (tableOld.Rows[i][dr["column"].ToString()].Equals(dr["value"].ToString())) { tableOld.Rows.RemoveAt(i); } } } for (int i = tableNew.Rows.Count - 1; i >= 0; i--) { foreach (DataRow dr in config.pruneItems.Rows) { if (tableNew.Rows[i][dr["column"].ToString()].Equals(dr["value"].ToString())) { tableNew.Rows.RemoveAt(i); } } } } catch (Exception wtf) { Log.Add("Error pruning rows. Check config.ini all columns should match input:" + wtf.StackTrace); } DoCompare(tableOld, tableNew, outFile); }