public SortedSet <string> DifferencesFrom(FileRecordContainer other) { SortedSet <string> differences = new SortedSet <string>(); foreach (string fileRecord in other._fileRecordSet) { if (!_fileRecordSet.Contains(fileRecord)) { differences.Add(fileRecord); } } return(differences); }
} // class FileRecordContainer static void ShowDifferences(FileRecordContainer fileRecordContainer1, FileRecordContainer fileRecordContainer2) { SortedSet <string> differences1minus2 = fileRecordContainer1.DifferencesFrom(fileRecordContainer2); if (differences1minus2.Count == 0) { Console.WriteLine("All of \"{0}\" is contained in \"{1}\"", fileRecordContainer2.Filename, fileRecordContainer1.Filename); } else { Console.WriteLine(); Console.WriteLine("There are {0} records in \"{1}\" that are not in \"{2}\"", differences1minus2.Count, fileRecordContainer2.Filename, fileRecordContainer1.Filename); Console.WriteLine(); foreach (string fileRecord in differences1minus2) { Console.WriteLine(" {0}", fileRecord); } } }
static void Main(string[] args) { FileRecordContainer fileRecordContainer1 = null; FileRecordContainer fileRecordContainer2 = null; if (args.Length > 0) { fileRecordContainer1 = new FileRecordContainer(args[0]); } if (args.Length > 1) { fileRecordContainer2 = new FileRecordContainer(args[1]); } if ((fileRecordContainer1 != null) && (fileRecordContainer2 != null)) { ShowDifferences(fileRecordContainer1, fileRecordContainer2); ShowDifferences(fileRecordContainer2, fileRecordContainer1); } }