private static List <List <Row> > ComputeDifference(ClosedSets originalMatches, ClosedSets newMatches) { List <Row>[] originals = originalMatches.RowToClosedRowSet; List <Row>[] news = newMatches.RowToClosedRowSet; bool[] tested = new bool[originals.Length]; List <List <Row> > difference = new List <List <Row> >(); for (int i = 0; i < originals.Length; i++) { if (!tested[i] && originals[i].Count != news[i].Count) { difference.Add(news[i]); } foreach (Row row in news[i]) { tested[newMatches.GetRowIndexFromEID(row.EnterpriseID)] = true; } } return(difference); }
static void Main(string[] args) { //HailMary hailMary = new HailMary(); //List<string> alternates = hailMary.LoadFromAlternatesFile("D:/alternates.csv", 16028369); //Row[] alternateAllData = alternates.Select(n => FileLibrary.ParseRow(n)).ToArray(); // Load Data var lines = FileLibrary.GetLines(); Row[] allData = lines.Skip(1).Where(l => l != ",,,,,,,,,,,,,,,,,,").Select(l => FileLibrary.ParseRow(l)).ToArray(); List <Row> toProcess = new List <Row>(); toProcess.AddRange(allData); //toProcess.AddRange(alternateAllData); allData = toProcess.ToArray(); var realData = toProcess.Where(r => r.EnterpriseID >= 15374761).OrderBy(n => n.MRN).ToArray(); // Clean Data Console.WriteLine("Cleaning Rows"); DataCleaningManager.CleanData(ref allData, realData); Console.WriteLine("Done Cleaning Rows"); // Load Data ClosedSets originalMatches = FileLibrary.LoadOriginalMatches(allData); ClosedSets newMatches = FileLibrary.LoadOriginalMatches(allData); // create a copy to edit // Match Data MatchingManager matchingManager = new MatchingManager(_printErrors, _printActuals, _printLargeGroupValues); matchingManager.FindAllMatches(allData, ref newMatches); List <List <int> > finalSubmission = newMatches.ClosedRowSets();//hailMary.Collapse(newMatches.ClosedRowSets()); FileLibrary.SaveFinalSubmission(finalSubmission, @"submission.csv"); Console.ReadLine(); }