From efc90457e59e738a038caea7cb21786ce775842d Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Sun, 26 Jul 2020 21:00:30 -0700 Subject: [PATCH] Create and use SortedKeys --- SabreTools.Library/DatFiles/AttractMode.cs | 7 ++----- SabreTools.Library/DatFiles/ClrMamePro.cs | 7 ++----- SabreTools.Library/DatFiles/DatFile.cs | 16 +++++++++++++++- SabreTools.Library/DatFiles/DosCenter.cs | 7 ++----- SabreTools.Library/DatFiles/EverdriveSmdb.cs | 7 ++----- SabreTools.Library/DatFiles/Hashfile.cs | 7 ++----- SabreTools.Library/DatFiles/Json.cs | 7 ++----- SabreTools.Library/DatFiles/Listrom.cs | 7 ++----- SabreTools.Library/DatFiles/Listxml.cs | 7 ++----- SabreTools.Library/DatFiles/Logiqx.cs | 7 ++----- SabreTools.Library/DatFiles/Missfile.cs | 7 ++----- SabreTools.Library/DatFiles/OfflineList.cs | 7 ++----- SabreTools.Library/DatFiles/OpenMSX.cs | 7 ++----- SabreTools.Library/DatFiles/RomCenter.cs | 7 ++----- SabreTools.Library/DatFiles/SabreDat.cs | 7 ++----- SabreTools.Library/DatFiles/SeparatedValue.cs | 7 ++----- SabreTools.Library/DatFiles/SoftwareList.cs | 7 ++----- SabreTools.Library/Data/Constants.cs | 4 ++-- 18 files changed, 49 insertions(+), 83 deletions(-) diff --git a/SabreTools.Library/DatFiles/AttractMode.cs b/SabreTools.Library/DatFiles/AttractMode.cs index cfe67a93..d0e74752 100644 --- a/SabreTools.Library/DatFiles/AttractMode.cs +++ b/SabreTools.Library/DatFiles/AttractMode.cs @@ -134,11 +134,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/ClrMamePro.cs b/SabreTools.Library/DatFiles/ClrMamePro.cs index 4114150d..32985223 100644 --- a/SabreTools.Library/DatFiles/ClrMamePro.cs +++ b/SabreTools.Library/DatFiles/ClrMamePro.cs @@ -464,11 +464,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/DatFile.cs b/SabreTools.Library/DatFiles/DatFile.cs index 7032a033..95dcfc43 100644 --- a/SabreTools.Library/DatFiles/DatFile.cs +++ b/SabreTools.Library/DatFiles/DatFile.cs @@ -239,6 +239,20 @@ namespace SabreTools.Library.DatFiles DatHeader.Type = type; } + /// + /// Get the keys in sorted order from the file dictionary + /// + /// List of the keys in sorted order + public List SortedKeys + { + get + { + var keys = Items.Keys.ToList(); + keys.Sort(new NaturalComparer()); + return keys; + } + } + /// /// Ensure the key exists in the items dictionary /// @@ -1335,8 +1349,8 @@ namespace SabreTools.Library.DatFiles // Now, loop through the dictionary and populate the correct DATs watch.Start("Populating all output DATs"); - List keys = Keys; + List keys = Keys; Parallel.ForEach(keys, Globals.ParallelOptions, key => { List items = DatItem.Merge(this[key]); diff --git a/SabreTools.Library/DatFiles/DosCenter.cs b/SabreTools.Library/DatFiles/DosCenter.cs index 15ae4978..c5d02daa 100644 --- a/SabreTools.Library/DatFiles/DosCenter.cs +++ b/SabreTools.Library/DatFiles/DosCenter.cs @@ -290,11 +290,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/EverdriveSmdb.cs b/SabreTools.Library/DatFiles/EverdriveSmdb.cs index ae361411..aabf13c5 100644 --- a/SabreTools.Library/DatFiles/EverdriveSmdb.cs +++ b/SabreTools.Library/DatFiles/EverdriveSmdb.cs @@ -110,11 +110,8 @@ namespace SabreTools.Library.DatFiles VerifyFieldCount = true }; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Hashfile.cs b/SabreTools.Library/DatFiles/Hashfile.cs index d89ea8b1..b8f3c4cc 100644 --- a/SabreTools.Library/DatFiles/Hashfile.cs +++ b/SabreTools.Library/DatFiles/Hashfile.cs @@ -125,11 +125,8 @@ namespace SabreTools.Library.DatFiles VerifyFieldCount = true }; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Json.cs b/SabreTools.Library/DatFiles/Json.cs index 43846891..d27ea57d 100644 --- a/SabreTools.Library/DatFiles/Json.cs +++ b/SabreTools.Library/DatFiles/Json.cs @@ -776,11 +776,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Listrom.cs b/SabreTools.Library/DatFiles/Listrom.cs index 00c0ca2c..5f2a841a 100644 --- a/SabreTools.Library/DatFiles/Listrom.cs +++ b/SabreTools.Library/DatFiles/Listrom.cs @@ -253,11 +253,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Listxml.cs b/SabreTools.Library/DatFiles/Listxml.cs index f3330ac6..77fc4061 100644 --- a/SabreTools.Library/DatFiles/Listxml.cs +++ b/SabreTools.Library/DatFiles/Listxml.cs @@ -574,11 +574,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Logiqx.cs b/SabreTools.Library/DatFiles/Logiqx.cs index 9cda841d..253fe7ea 100644 --- a/SabreTools.Library/DatFiles/Logiqx.cs +++ b/SabreTools.Library/DatFiles/Logiqx.cs @@ -671,11 +671,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/Missfile.cs b/SabreTools.Library/DatFiles/Missfile.cs index f0faf3dd..9f713d41 100644 --- a/SabreTools.Library/DatFiles/Missfile.cs +++ b/SabreTools.Library/DatFiles/Missfile.cs @@ -67,11 +67,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/OfflineList.cs b/SabreTools.Library/DatFiles/OfflineList.cs index a44fa1c9..da94c707 100644 --- a/SabreTools.Library/DatFiles/OfflineList.cs +++ b/SabreTools.Library/DatFiles/OfflineList.cs @@ -757,11 +757,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/OpenMSX.cs b/SabreTools.Library/DatFiles/OpenMSX.cs index 47b1c82f..dee9a90a 100644 --- a/SabreTools.Library/DatFiles/OpenMSX.cs +++ b/SabreTools.Library/DatFiles/OpenMSX.cs @@ -501,11 +501,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/RomCenter.cs b/SabreTools.Library/DatFiles/RomCenter.cs index 0e7bf6f5..e9e16093 100644 --- a/SabreTools.Library/DatFiles/RomCenter.cs +++ b/SabreTools.Library/DatFiles/RomCenter.cs @@ -392,11 +392,8 @@ namespace SabreTools.Library.DatFiles string lastgame = null; List splitpath = new List(); - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/SabreDat.cs b/SabreTools.Library/DatFiles/SabreDat.cs index 29fd112d..cf5c9803 100644 --- a/SabreTools.Library/DatFiles/SabreDat.cs +++ b/SabreTools.Library/DatFiles/SabreDat.cs @@ -563,11 +563,8 @@ namespace SabreTools.Library.DatFiles string lastgame = null; List splitpath = new List(); - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/SeparatedValue.cs b/SabreTools.Library/DatFiles/SeparatedValue.cs index 7525dbb7..b9ab50ce 100644 --- a/SabreTools.Library/DatFiles/SeparatedValue.cs +++ b/SabreTools.Library/DatFiles/SeparatedValue.cs @@ -882,11 +882,8 @@ namespace SabreTools.Library.DatFiles // Write out the header WriteHeader(svw); - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/DatFiles/SoftwareList.cs b/SabreTools.Library/DatFiles/SoftwareList.cs index 9c8b73d0..7c9f8a86 100644 --- a/SabreTools.Library/DatFiles/SoftwareList.cs +++ b/SabreTools.Library/DatFiles/SoftwareList.cs @@ -554,11 +554,8 @@ namespace SabreTools.Library.DatFiles // Write out each of the machines and roms string lastgame = null; - // Get a properly sorted set of keys - List keys = Keys; - keys.Sort(new NaturalComparer()); - - foreach (string key in keys) + // Use a sorted list of games to output + foreach (string key in SortedKeys) { List roms = this[key]; diff --git a/SabreTools.Library/Data/Constants.cs b/SabreTools.Library/Data/Constants.cs index 43993fca..3d14ad35 100644 --- a/SabreTools.Library/Data/Constants.cs +++ b/SabreTools.Library/Data/Constants.cs @@ -12,8 +12,8 @@ namespace SabreTools.Library.Data /// /// The current toolset version to be used by all child applications /// - public readonly static string Version = $"v1.0.2"; - //public readonly static string Version = $"v1.0.2-{File.GetCreationTime(Assembly.GetExecutingAssembly().Location):yyyy-MM-dd HH:mm:ss}"; + ///public readonly static string Version = $"v1.0.2"; + public readonly static string Version = $"v1.0.2-{File.GetCreationTime(Assembly.GetExecutingAssembly().Location):yyyy-MM-dd HH:mm:ss}"; public const int HeaderHeight = 3; #region 0-byte file constants