From cf4ca76e10c5f97f8067e9d4f57a4e275fee8255 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 12 Nov 2024 14:10:00 -0500 Subject: [PATCH] Select --- .../CrossModel/ArchiveDotOrg.Deserializer.cs | 6 +- .../CrossModel/ArchiveDotOrg.Serializer.cs | 9 +- .../CrossModel/AttractMode.Deserializer.cs | 5 +- .../CrossModel/AttractMode.Serializer.cs | 9 +- .../CrossModel/ClrMamePro.Deserializer.cs | 78 ++----- .../CrossModel/ClrMamePro.Serializer.cs | 69 +++---- .../CrossModel/DosCenter.Deserializer.cs | 16 +- .../CrossModel/DosCenter.Serializer.cs | 14 +- .../CrossModel/EverdriveSMDB.Deserializer.cs | 5 +- .../CrossModel/EverdriveSMDB.Serializer.cs | 8 +- .../CrossModel/Hashfile.Deserializer.cs | 50 +---- .../CrossModel/Hashfile.Serializer.cs | 16 +- .../CrossModel/Listrom.Deserializer.cs | 15 +- .../CrossModel/Listrom.Serializer.cs | 7 +- .../CrossModel/Listxml.Deserializer.cs | 191 +++--------------- .../CrossModel/Listxml.Serializer.cs | 158 +++++---------- .../CrossModel/Logiqx.Deserializer.cs | 72 +------ .../CrossModel/Logiqx.Serializer.cs | 33 ++- .../CrossModel/M1.Deserializer.cs | 9 +- .../CrossModel/M1.Serializer.cs | 8 +- .../CrossModel/OfflineList.Deserializer.cs | 16 +- .../CrossModel/OfflineList.Serializer.cs | 24 +-- .../CrossModel/OpenMSX.Deserializer.cs | 16 +- .../CrossModel/OpenMSX.Serializer.cs | 14 +- .../CrossModel/RomCenter.Deserializer.cs | 5 +- .../CrossModel/RomCenter.Serializer.cs | 7 +- .../CrossModel/SeparatedValue.Deserializer.cs | 16 +- .../CrossModel/SeparatedValue.Serializer.cs | 7 +- .../CrossModel/SoftwareList.Deserializer.cs | 79 ++------ .../CrossModel/SoftwareList.Serializer.cs | 28 ++- .../Deserializers/BaseBinaryDeserializer.cs | 4 +- .../Deserializers/RomCenter.cs | 10 +- .../Printers/PortableExecutable.cs | 5 +- 33 files changed, 267 insertions(+), 742 deletions(-) diff --git a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs index ea76c1a6..2d35df11 100644 --- a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs @@ -1,4 +1,5 @@ using System.Linq; +using System; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.CrossModel @@ -34,10 +35,7 @@ namespace SabreTools.Serialization.CrossModel if (roms == null) return []; - return roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); + return Array.ConvertAll(roms, ConvertFromInternalModel); } /// diff --git a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Serializer.cs b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Serializer.cs index 7fb256b7..2824a3b3 100644 --- a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.CrossModel @@ -18,11 +18,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.File != null && item.File.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.File - .Where(f => f != null) - .Select(ConvertMachineToInternalModel) - .Where(m => m != null) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.File, ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs b/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs index f95fba8c..67b3b522 100644 --- a/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs @@ -49,10 +49,7 @@ namespace SabreTools.Serialization.CrossModel if (roms == null || roms.Length == 0) return []; - return roms - .Where(r => r != null) - .Select(rom => ConvertFromInternalModel(rom, item)) - .ToArray(); + return Array.ConvertAll(roms, r => ConvertFromInternalModel(r, item)); } /// diff --git a/SabreTools.Serialization/CrossModel/AttractMode.Serializer.cs b/SabreTools.Serialization/CrossModel/AttractMode.Serializer.cs index e2e4e321..c9615970 100644 --- a/SabreTools.Serialization/CrossModel/AttractMode.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/AttractMode.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.AttractMode; using SabreTools.Serialization.Interfaces; @@ -19,11 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Row != null && obj.Row.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Row - .Where(r => r != null) - .Select(ConvertMachineToInternalModel) - .Where(m => m != null) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs b/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs index f62b2586..9232fa8d 100644 --- a/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/ClrMamePro.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.ClrMamePro; using SabreTools.Serialization.Interfaces; @@ -24,10 +24,8 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) { - metadataFile.Game = machines - .Where(m => m != null) - .Select(machine => ConvertMachineFromInternalModel(machine, game)) - .ToArray(); + metadataFile.Game + = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m)); } return metadataFile; @@ -77,84 +75,39 @@ namespace SabreTools.Serialization.CrossModel var releases = item.Read(Models.Metadata.Machine.ReleaseKey); if (releases != null && releases.Length > 0) - { - gameBase.Release = releases - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Release = Array.ConvertAll(releases, ConvertFromInternalModel); var biosSets = item.Read(Models.Metadata.Machine.BiosSetKey); if (biosSets != null && biosSets.Length > 0) - { - gameBase.BiosSet = biosSets - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.BiosSet = Array.ConvertAll(biosSets, ConvertFromInternalModel); var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) - { - gameBase.Rom = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Rom = Array.ConvertAll(roms, ConvertFromInternalModel); var disks = item.Read(Models.Metadata.Machine.DiskKey); if (disks != null && disks.Length > 0) - { - gameBase.Disk = disks - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Disk = Array.ConvertAll(disks, ConvertFromInternalModel); var medias = item.Read(Models.Metadata.Machine.MediaKey); if (medias != null && medias.Length > 0) - { - gameBase.Media = medias - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Media = Array.ConvertAll(medias, ConvertFromInternalModel); var samples = item.Read(Models.Metadata.Machine.SampleKey); if (samples != null && samples.Length > 0) - { - gameBase.Sample = samples - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Sample = Array.ConvertAll(samples, ConvertFromInternalModel); var archives = item.Read(Models.Metadata.Machine.ArchiveKey); if (archives != null && archives.Length > 0) - { - gameBase.Archive = archives - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Archive = Array.ConvertAll(archives, ConvertFromInternalModel); var chips = item.Read(Models.Metadata.Machine.ChipKey); if (chips != null && chips.Length > 0) - { - gameBase.Chip = chips - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Chip = Array.ConvertAll(chips, ConvertFromInternalModel); var videos = item.Read(Models.Metadata.Machine.VideoKey); if (videos != null && videos.Length > 0) - { - gameBase.Video = videos - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Video = Array.ConvertAll(videos, ConvertFromInternalModel); var sound = item.Read(Models.Metadata.Machine.SoundKey); if (sound != null) @@ -166,12 +119,7 @@ namespace SabreTools.Serialization.CrossModel var dipSwitches = item.Read(Models.Metadata.Machine.DipSwitchKey); if (dipSwitches != null && dipSwitches.Length > 0) - { - gameBase.DipSwitch = dipSwitches - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.DipSwitch = Array.ConvertAll(dipSwitches, ConvertFromInternalModel); var driver = item.Read(Models.Metadata.Machine.DriverKey); if (driver != null) diff --git a/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs b/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs index 5f462085..ff0df674 100644 --- a/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/ClrMamePro.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.ClrMamePro; using SabreTools.Serialization.Interfaces; @@ -19,11 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Game != null && obj.Game.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Game - .Where(g => g != null) - .Select(ConvertMachineToInternalModel) - .Where(m => m != null) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel); } return metadataFile; @@ -77,74 +74,56 @@ namespace SabreTools.Serialization.CrossModel if (item.Release != null && item.Release.Length > 0) { - machine[Models.Metadata.Machine.ReleaseKey] = item.Release - .Where(r => r != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.ReleaseKey] + = Array.ConvertAll(item.Release, ConvertToInternalModel); } if (item.BiosSet != null && item.BiosSet.Length > 0) { - machine[Models.Metadata.Machine.BiosSetKey] = item.BiosSet - .Where(b => b != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.BiosSetKey] + = Array.ConvertAll(item.BiosSet, ConvertToInternalModel); } if (item.Rom != null && item.Rom.Length > 0) { - machine[Models.Metadata.Machine.RomKey] = item.Rom - .Where(r => r != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.RomKey] + = Array.ConvertAll(item.Rom, ConvertToInternalModel); } if (item.Disk != null && item.Disk.Length > 0) { - machine[Models.Metadata.Machine.DiskKey] = item.Disk - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DiskKey] + = Array.ConvertAll(item.Disk, ConvertToInternalModel); } if (item.Media != null && item.Media.Length > 0) { - machine[Models.Metadata.Machine.MediaKey] = item.Media - .Where(m => m != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.MediaKey] + = Array.ConvertAll(item.Media, ConvertToInternalModel); } if (item.Sample != null && item.Sample.Length > 0) { - machine[Models.Metadata.Machine.SampleKey] = item.Sample - .Where(s => s != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.SampleKey] + = Array.ConvertAll(item.Sample, ConvertToInternalModel); } if (item.Archive != null && item.Archive.Length > 0) { - machine[Models.Metadata.Machine.ArchiveKey] = item.Archive - .Where(a => a != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.ArchiveKey] + = Array.ConvertAll(item.Archive, ConvertToInternalModel); } if (item.Chip != null && item.Chip.Length > 0) { - machine[Models.Metadata.Machine.ChipKey] = item.Chip - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.ChipKey] + = Array.ConvertAll(item.Chip, ConvertToInternalModel); } if (item.Video != null) { - machine[Models.Metadata.Machine.VideoKey] = item.Video - .Where(v => v != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.VideoKey] + = Array.ConvertAll(item.Video, ConvertToInternalModel); } if (item.Sound != null) @@ -155,10 +134,8 @@ namespace SabreTools.Serialization.CrossModel if (item.DipSwitch != null && item.DipSwitch.Length > 0) { - machine[Models.Metadata.Machine.DipSwitchKey] = item.DipSwitch - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DipSwitchKey] + = Array.ConvertAll(item.DipSwitch, ConvertToInternalModel); } if (item.Driver != null) diff --git a/SabreTools.Serialization/CrossModel/DosCenter.Deserializer.cs b/SabreTools.Serialization/CrossModel/DosCenter.Deserializer.cs index fd4abf6d..10667292 100644 --- a/SabreTools.Serialization/CrossModel/DosCenter.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/DosCenter.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.DosCenter; using SabreTools.Serialization.Interfaces; @@ -20,12 +20,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - metadataFile.Game = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + metadataFile.Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return metadataFile; } @@ -60,12 +55,7 @@ namespace SabreTools.Serialization.CrossModel var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) - { - game.File = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + game.File = Array.ConvertAll(roms, ConvertFromInternalModel); return game; } diff --git a/SabreTools.Serialization/CrossModel/DosCenter.Serializer.cs b/SabreTools.Serialization/CrossModel/DosCenter.Serializer.cs index 36d36173..75010662 100644 --- a/SabreTools.Serialization/CrossModel/DosCenter.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/DosCenter.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.DosCenter; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Game != null && obj.Game.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Game - .Where(g => g != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Game, ConvertMachineToInternalModel); } return metadataFile; @@ -58,10 +56,8 @@ namespace SabreTools.Serialization.CrossModel if (item.File != null && item.File.Length > 0) { - machine[Models.Metadata.Machine.RomKey] = item.File - .Where(f => f != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.RomKey] + = Array.ConvertAll(item.File, ConvertToInternalModel); } return machine; diff --git a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs index 948f7b22..44cb8baa 100644 --- a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs @@ -36,10 +36,7 @@ namespace SabreTools.Serialization.CrossModel if (roms == null || roms.Length == 0) return []; - return roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); + return Array.ConvertAll(roms, ConvertFromInternalModel); } /// diff --git a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Serializer.cs b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Serializer.cs index debefea6..70ccc83e 100644 --- a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.EverdriveSMDB; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Row != null && obj.Row.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Row - .Where(r => r != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs b/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs index c7a9a5c8..d2d5db1a 100644 --- a/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/Hashfile.Deserializer.cs @@ -1,5 +1,5 @@ +using System; using System.Collections.Generic; -using System.Linq; using SabreTools.Hashing; using SabreTools.Models.Hashfile; using SabreTools.Serialization.Interfaces; @@ -21,9 +21,7 @@ namespace SabreTools.Serialization.CrossModel if (machines == null || machines.Length == 0) return null; - var hashfiles = machines - .Where(m => m != null) - .Select(machine => ConvertMachineFromInternalModel(machine, hash)); + var hashfiles = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, hash)); var sfvs = new List(); var md5s = new List(); @@ -81,12 +79,7 @@ namespace SabreTools.Serialization.CrossModel var machines = item.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - return machines - .Where(m => m != null) - .Select(machine => ConvertMachineFromInternalModel(machine, hash)) - .ToArray(); - } + return Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, hash)); return null; } @@ -103,46 +96,25 @@ namespace SabreTools.Serialization.CrossModel return new Models.Hashfile.Hashfile { SFV = hash == HashType.CRC32 - ? roms - .Where(r => r != null) - .Select(ConvertToSFV) - .ToArray() - : null, + ? Array.ConvertAll(roms, ConvertToSFV) + : null, MD5 = hash == HashType.MD5 - ? roms - .Where(r => r != null) - .Select(ConvertToMD5) - .ToArray() + ? Array.ConvertAll(roms, ConvertToMD5) : null, SHA1 = hash == HashType.SHA1 - ? roms - .Where(r => r != null) - .Select(ConvertToSHA1) - .ToArray() + ? Array.ConvertAll(roms, ConvertToSHA1) : null, SHA256 = hash == HashType.SHA256 - ? roms - .Where(r => r != null) - .Select(ConvertToSHA256) - .ToArray() + ? Array.ConvertAll(roms, ConvertToSHA256) : null, SHA384 = hash == HashType.SHA384 - ? roms - .Where(r => r != null) - .Select(ConvertToSHA384) - .ToArray() + ? Array.ConvertAll(roms, ConvertToSHA384) : null, SHA512 = hash == HashType.SHA512 - ? roms - .Where(r => r != null) - .Select(ConvertToSHA512) - .ToArray() + ? Array.ConvertAll(roms, ConvertToSHA512) : null, SpamSum = hash == HashType.SpamSum - ? roms - .Where(r => r != null) - .Select(ConvertToSpamSum) - .ToArray() + ? Array.ConvertAll(roms, ConvertToSpamSum) : null, }; } diff --git a/SabreTools.Serialization/CrossModel/Hashfile.Serializer.cs b/SabreTools.Serialization/CrossModel/Hashfile.Serializer.cs index 5df544a1..adc2dc66 100644 --- a/SabreTools.Serialization/CrossModel/Hashfile.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/Hashfile.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.Hashfile; using SabreTools.Serialization.Interfaces; @@ -43,19 +43,19 @@ namespace SabreTools.Serialization.CrossModel var machine = new Models.Metadata.Machine(); if (item.SFV != null && item.SFV.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SFV.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SFV, ConvertToInternalModel); else if (item.MD5 != null && item.MD5.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.MD5.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.MD5, ConvertToInternalModel); else if (item.SHA1 != null && item.SHA1.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SHA1.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SHA1, ConvertToInternalModel); else if (item.SHA256 != null && item.SHA256.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SHA256.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SHA256, ConvertToInternalModel); else if (item.SHA384 != null && item.SHA384.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SHA384.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SHA384, ConvertToInternalModel); else if (item.SHA512 != null && item.SHA512.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SHA512.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SHA512, ConvertToInternalModel); else if (item.SpamSum != null && item.SpamSum.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.SpamSum.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.SpamSum, ConvertToInternalModel); return machine; } diff --git a/SabreTools.Serialization/CrossModel/Listrom.Deserializer.cs b/SabreTools.Serialization/CrossModel/Listrom.Deserializer.cs index bc996567..26cd9052 100644 --- a/SabreTools.Serialization/CrossModel/Listrom.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/Listrom.Deserializer.cs @@ -1,5 +1,5 @@ +using System; using System.Collections.Generic; -using System.Linq; using SabreTools.Models.Listrom; using SabreTools.Serialization.Interfaces; @@ -17,12 +17,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - metadataFile.Set = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + metadataFile.Set = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return metadataFile; } @@ -43,14 +38,14 @@ namespace SabreTools.Serialization.CrossModel var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null) { - rowItems.AddRange(roms.Where(r => r != null).Select(ConvertFromInternalModel)); + rowItems.AddRange(Array.ConvertAll(roms, ConvertFromInternalModel)); } var disks = item.Read(Models.Metadata.Machine.DiskKey); if (disks != null) - rowItems.AddRange(disks.Where(d => d != null).Select(ConvertFromInternalModel)); + rowItems.AddRange(Array.ConvertAll(disks, ConvertFromInternalModel)); - set.Row = rowItems.ToArray(); + set.Row = [.. rowItems]; return set; } diff --git a/SabreTools.Serialization/CrossModel/Listrom.Serializer.cs b/SabreTools.Serialization/CrossModel/Listrom.Serializer.cs index f1729d87..20b43b17 100644 --- a/SabreTools.Serialization/CrossModel/Listrom.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/Listrom.Serializer.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using SabreTools.Models.Listrom; @@ -20,10 +21,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Set != null && obj.Set.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Set - .Where(s => s != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Set, ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/Listxml.Deserializer.cs b/SabreTools.Serialization/CrossModel/Listxml.Deserializer.cs index e7d96b40..4802c067 100644 --- a/SabreTools.Serialization/CrossModel/Listxml.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/Listxml.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.Listxml; using SabreTools.Serialization.Interfaces; @@ -17,12 +17,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - mame.Game = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + mame.Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return mame; } @@ -40,12 +35,7 @@ namespace SabreTools.Serialization.CrossModel var machines = item.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - mame.Game = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + mame.Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return mame; } @@ -89,75 +79,35 @@ namespace SabreTools.Serialization.CrossModel var biosSets = item.Read(Models.Metadata.Machine.BiosSetKey); if (biosSets != null && biosSets.Length > 0) - { - machine.BiosSet = biosSets - .Where(b => b != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.BiosSet = Array.ConvertAll(biosSets, ConvertFromInternalModel); var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) - { - machine.Rom = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Rom = Array.ConvertAll(roms, ConvertFromInternalModel); var disks = item.Read(Models.Metadata.Machine.DiskKey); if (disks != null && disks.Length > 0) - { - machine.Disk = disks - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Disk = Array.ConvertAll(disks, ConvertFromInternalModel); var deviceRefs = item.Read(Models.Metadata.Machine.DeviceRefKey); if (deviceRefs != null && deviceRefs.Length > 0) - { - machine.DeviceRef = deviceRefs - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.DeviceRef = Array.ConvertAll(deviceRefs, ConvertFromInternalModel); var samples = item.Read(Models.Metadata.Machine.SampleKey); if (samples != null && samples.Length > 0) - { - machine.Sample = samples - .Where(s => s != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Sample = Array.ConvertAll(samples, ConvertFromInternalModel); var chips = item.Read(Models.Metadata.Machine.ChipKey); if (chips != null && chips.Length > 0) - { - machine.Chip = chips - .Where(c => c != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Chip = Array.ConvertAll(chips, ConvertFromInternalModel); var displays = item.Read(Models.Metadata.Machine.DisplayKey); if (displays != null && displays.Length > 0) - { - machine.Display = displays - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Display = Array.ConvertAll(displays, ConvertFromInternalModel); var videos = item.Read(Models.Metadata.Machine.VideoKey); if (videos != null && videos.Length > 0) - { - machine.Video = videos - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Video = Array.ConvertAll(videos, ConvertFromInternalModel); var sound = item.Read(Models.Metadata.Machine.SoundKey); if (sound != null) @@ -169,39 +119,19 @@ namespace SabreTools.Serialization.CrossModel var dipSwitches = item.Read(Models.Metadata.Machine.DipSwitchKey); if (dipSwitches != null && dipSwitches.Length > 0) - { - machine.DipSwitch = dipSwitches - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.DipSwitch = Array.ConvertAll(dipSwitches, ConvertFromInternalModel); var configurations = item.Read(Models.Metadata.Machine.ConfigurationKey); if (configurations != null && configurations.Length > 0) - { - machine.Configuration = configurations - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Configuration = Array.ConvertAll(configurations, ConvertFromInternalModel); var ports = item.Read(Models.Metadata.Machine.PortKey); if (ports != null && ports.Length > 0) - { - machine.Port = ports - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Port = Array.ConvertAll(ports, ConvertFromInternalModel); var adjusters = item.Read(Models.Metadata.Machine.AdjusterKey); if (adjusters != null && adjusters.Length > 0) - { - machine.Adjuster = adjusters - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Adjuster = Array.ConvertAll(adjusters, ConvertFromInternalModel); var driver = item.Read(Models.Metadata.Machine.DriverKey); if (driver != null) @@ -209,48 +139,23 @@ namespace SabreTools.Serialization.CrossModel var features = item.Read(Models.Metadata.Machine.FeatureKey); if (features != null && features.Length > 0) - { - machine.Feature = features - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Feature = Array.ConvertAll(features, ConvertFromInternalModel); var devices = item.Read(Models.Metadata.Machine.DeviceKey); if (devices != null && devices.Length > 0) - { - machine.Device = devices - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Device = Array.ConvertAll(devices, ConvertFromInternalModel); var slots = item.Read(Models.Metadata.Machine.SlotKey); if (slots != null && slots.Length > 0) - { - machine.Slot = slots - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.Slot = Array.ConvertAll(slots, ConvertFromInternalModel); var softwareLists = item.Read(Models.Metadata.Machine.SoftwareListKey); if (softwareLists != null && softwareLists.Length > 0) - { - machine.SoftwareList = softwareLists - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.SoftwareList = Array.ConvertAll(softwareLists, ConvertFromInternalModel); var ramOptions = item.Read(Models.Metadata.Machine.RamOptionKey); if (ramOptions != null && ramOptions.Length > 0) - { - machine.RamOption = ramOptions - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + machine.RamOption = Array.ConvertAll(ramOptions, ConvertFromInternalModel); return machine; } @@ -348,21 +253,11 @@ namespace SabreTools.Serialization.CrossModel var confLocations = item.Read(Models.Metadata.Configuration.ConfLocationKey); if (confLocations != null && confLocations.Length > 0) - { - configuration.ConfLocation = confLocations - .Where(c => c != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + configuration.ConfLocation = Array.ConvertAll(confLocations, ConvertFromInternalModel); var confSettings = item.Read(Models.Metadata.Configuration.ConfSettingKey); if (confSettings != null && confSettings.Length > 0) - { - configuration.ConfSetting = confSettings - .Where(c => c != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + configuration.ConfSetting = Array.ConvertAll(confSettings, ConvertFromInternalModel); return configuration; } @@ -443,12 +338,7 @@ namespace SabreTools.Serialization.CrossModel var extensions = item.Read(Models.Metadata.Device.ExtensionKey); if (extensions != null && extensions.Length > 0) - { - device.Extension = extensions - .Where(e => e != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + device.Extension = Array.ConvertAll(extensions, ConvertFromInternalModel); return device; } @@ -497,21 +387,11 @@ namespace SabreTools.Serialization.CrossModel var dipLocations = item.Read(Models.Metadata.DipSwitch.DipLocationKey); if (dipLocations != null && dipLocations.Length > 0) - { - dipSwitch.DipLocation = dipLocations - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + dipSwitch.DipLocation = Array.ConvertAll(dipLocations, ConvertFromInternalModel); var dipValues = item.Read(Models.Metadata.DipSwitch.DipValueKey); if (dipValues != null && dipValues.Length > 0) - { - dipSwitch.DipValue = dipValues - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + dipSwitch.DipValue = Array.ConvertAll(dipValues, ConvertFromInternalModel); return dipSwitch; } @@ -645,12 +525,7 @@ namespace SabreTools.Serialization.CrossModel var controls = item.Read(Models.Metadata.Input.ControlKey); if (controls != null && controls.Length > 0) - { - input.Control = controls - .Where(c => c != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + input.Control = Array.ConvertAll(controls, ConvertFromInternalModel); return input; } @@ -680,12 +555,7 @@ namespace SabreTools.Serialization.CrossModel var analogs = item.Read(Models.Metadata.Port.AnalogKey); if (analogs != null && analogs.Length > 0) - { - port.Analog = analogs - .Where(a => a != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + port.Analog = Array.ConvertAll(analogs, ConvertFromInternalModel); return port; } @@ -751,12 +621,7 @@ namespace SabreTools.Serialization.CrossModel var slotOptions = item.Read(Models.Metadata.Slot.SlotOptionKey); if (slotOptions != null && slotOptions.Length > 0) - { - slot.SlotOption = slotOptions - .Where(s => s != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + slot.SlotOption = Array.ConvertAll(slotOptions, ConvertFromInternalModel); return slot; } diff --git a/SabreTools.Serialization/CrossModel/Listxml.Serializer.cs b/SabreTools.Serialization/CrossModel/Listxml.Serializer.cs index f07149af..7a3d6e98 100644 --- a/SabreTools.Serialization/CrossModel/Listxml.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/Listxml.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.Listxml; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.Game != null && item.Game.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Game - .Where(g => g != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.Game, ConvertMachineToInternalModel); } return metadataFile; @@ -66,66 +64,50 @@ namespace SabreTools.Serialization.CrossModel if (item.BiosSet != null && item.BiosSet.Length > 0) { - machine[Models.Metadata.Machine.BiosSetKey] = item.BiosSet - .Where(b => b != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.BiosSetKey] + = Array.ConvertAll(item.BiosSet, ConvertToInternalModel); } if (item.Rom != null && item.Rom.Length > 0) { - machine[Models.Metadata.Machine.RomKey] = item.Rom - .Where(r => r != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.RomKey] + = Array.ConvertAll(item.Rom, ConvertToInternalModel); } if (item.Disk != null && item.Disk.Length > 0) { - machine[Models.Metadata.Machine.DiskKey] = item.Disk - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DiskKey] + = Array.ConvertAll(item.Disk, ConvertToInternalModel); } if (item.DeviceRef != null && item.DeviceRef.Length > 0) { - machine[Models.Metadata.Machine.DeviceRefKey] = item.DeviceRef - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DeviceRefKey] + = Array.ConvertAll(item.DeviceRef, ConvertToInternalModel); } if (item.Sample != null && item.Sample.Length > 0) { - machine[Models.Metadata.Machine.SampleKey] = item.Sample - .Where(s => s != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.SampleKey] + = Array.ConvertAll(item.Sample, ConvertToInternalModel); } if (item.Chip != null && item.Chip.Length > 0) { - machine[Models.Metadata.Machine.ChipKey] = item.Chip - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.ChipKey] + = Array.ConvertAll(item.Chip, ConvertToInternalModel); } if (item.Display != null && item.Display.Length > 0) { - machine[Models.Metadata.Machine.DisplayKey] = item.Display - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DisplayKey] + = Array.ConvertAll(item.Display, ConvertToInternalModel); } if (item.Video != null && item.Video.Length > 0) { - machine[Models.Metadata.Machine.VideoKey] = item.Video - .Where(v => v != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.VideoKey] + = Array.ConvertAll(item.Video, ConvertToInternalModel); } if (item.Sound != null) @@ -136,34 +118,26 @@ namespace SabreTools.Serialization.CrossModel if (item.DipSwitch != null && item.DipSwitch.Length > 0) { - machine[Models.Metadata.Machine.DipSwitchKey] = item.DipSwitch - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DipSwitchKey] + = Array.ConvertAll(item.DipSwitch, ConvertToInternalModel); } if (item.Configuration != null && item.Configuration.Length > 0) { - machine[Models.Metadata.Machine.ConfigurationKey] = item.Configuration - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.ConfigurationKey] + = Array.ConvertAll(item.Configuration, ConvertToInternalModel); } if (item.Port != null && item.Port.Length > 0) { - machine[Models.Metadata.Machine.PortKey] = item.Port - .Where(p => p != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.PortKey] + = Array.ConvertAll(item.Port, ConvertToInternalModel); } if (item.Adjuster != null && item.Adjuster.Length > 0) { - machine[Models.Metadata.Machine.AdjusterKey] = item.Adjuster - .Where(a => a != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.AdjusterKey] + = Array.ConvertAll(item.Adjuster, ConvertToInternalModel); } if (item.Driver != null) @@ -171,42 +145,32 @@ namespace SabreTools.Serialization.CrossModel if (item.Feature != null && item.Feature.Length > 0) { - machine[Models.Metadata.Machine.FeatureKey] = item.Feature - .Where(f => f != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.FeatureKey] + = Array.ConvertAll(item.Feature, ConvertToInternalModel); } if (item.Device != null && item.Device.Length > 0) { - machine[Models.Metadata.Machine.DeviceKey] = item.Device - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DeviceKey] + = Array.ConvertAll(item.Device, ConvertToInternalModel); } if (item.Slot != null && item.Slot.Length > 0) { - machine[Models.Metadata.Machine.SlotKey] = item.Slot - .Where(s => s != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.SlotKey] + = Array.ConvertAll(item.Slot, ConvertToInternalModel); } if (item.SoftwareList != null && item.SoftwareList.Length > 0) { - machine[Models.Metadata.Machine.SoftwareListKey] = item.SoftwareList - .Where(s => s != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.SoftwareListKey] + = Array.ConvertAll(item.SoftwareList, ConvertToInternalModel); } if (item.RamOption != null && item.RamOption.Length > 0) { - machine[Models.Metadata.Machine.RamOptionKey] = item.RamOption - .Where(r => r != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.RamOptionKey] + = Array.ConvertAll(item.RamOption, ConvertToInternalModel); } return machine; @@ -303,18 +267,14 @@ namespace SabreTools.Serialization.CrossModel if (item.ConfLocation != null && item.ConfLocation.Length > 0) { - configuration[Models.Metadata.Configuration.ConfLocationKey] = item.ConfLocation - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + configuration[Models.Metadata.Configuration.ConfLocationKey] + = Array.ConvertAll(item.ConfLocation, ConvertToInternalModel); } if (item.ConfSetting != null && item.ConfSetting.Length > 0) { - configuration[Models.Metadata.Configuration.ConfSettingKey] = item.ConfSetting - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + configuration[Models.Metadata.Configuration.ConfSettingKey] + = Array.ConvertAll(item.ConfSetting, ConvertToInternalModel); } return configuration; @@ -394,10 +354,8 @@ namespace SabreTools.Serialization.CrossModel if (item.Extension != null && item.Extension.Length > 0) { - device[Models.Metadata.Device.ExtensionKey] = item.Extension - .Where(e => e != null) - .Select(ConvertToInternalModel) - .ToArray(); + device[Models.Metadata.Device.ExtensionKey] + = Array.ConvertAll(item.Extension, ConvertToInternalModel); } return device; @@ -446,18 +404,14 @@ namespace SabreTools.Serialization.CrossModel if (item.DipLocation != null && item.DipLocation.Length > 0) { - dipSwitch[Models.Metadata.DipSwitch.DipLocationKey] = item.DipLocation - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + dipSwitch[Models.Metadata.DipSwitch.DipLocationKey] + = Array.ConvertAll(item.DipLocation, ConvertToInternalModel); } if (item.DipValue != null && item.DipValue.Length > 0) { - dipSwitch[Models.Metadata.DipSwitch.DipValueKey] = item.DipValue - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + dipSwitch[Models.Metadata.DipSwitch.DipValueKey] + = Array.ConvertAll(item.DipValue, ConvertToInternalModel); } return dipSwitch; @@ -591,10 +545,8 @@ namespace SabreTools.Serialization.CrossModel if (item.Control != null && item.Control.Length > 0) { - input[Models.Metadata.Input.ControlKey] = item.Control - .Where(c => c != null) - .Select(ConvertToInternalModel) - .ToArray(); + input[Models.Metadata.Input.ControlKey] + = Array.ConvertAll(item.Control, ConvertToInternalModel); } return input; @@ -625,10 +577,8 @@ namespace SabreTools.Serialization.CrossModel if (item.Analog != null && item.Analog.Length > 0) { - port[Models.Metadata.Port.AnalogKey] = item.Analog - .Where(a => a != null) - .Select(ConvertToInternalModel) - .ToArray(); + port[Models.Metadata.Port.AnalogKey] + = Array.ConvertAll(item.Analog, ConvertToInternalModel); } return port; @@ -695,10 +645,8 @@ namespace SabreTools.Serialization.CrossModel if (item.SlotOption != null && item.SlotOption.Length > 0) { - slot[Models.Metadata.Slot.SlotOptionKey] = item.SlotOption - .Where(s => s != null) - .Select(ConvertToInternalModel) - .ToArray(); + slot[Models.Metadata.Slot.SlotOptionKey] + = Array.ConvertAll(item.SlotOption, ConvertToInternalModel); } return slot; diff --git a/SabreTools.Serialization/CrossModel/Logiqx.Deserializer.cs b/SabreTools.Serialization/CrossModel/Logiqx.Deserializer.cs index 256dec59..193859e9 100644 --- a/SabreTools.Serialization/CrossModel/Logiqx.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/Logiqx.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.Logiqx; using SabreTools.Serialization.Interfaces; @@ -29,12 +29,7 @@ namespace SabreTools.Serialization.CrossModel // TODO: Handle Dir items - Currently need to be generated from the machines var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - datafile.Game = machines - .Where(m => m != null) - .Select(machine => ConvertMachineFromInternalModel(machine, game)) - .ToArray(); - } + datafile.Game = Array.ConvertAll(machines, m => ConvertMachineFromInternalModel(m, game)); return datafile; } @@ -131,75 +126,35 @@ namespace SabreTools.Serialization.CrossModel var releases = item.Read(Models.Metadata.Machine.ReleaseKey); if (releases != null && releases.Length > 0) - { - gameBase.Release = releases - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Release = Array.ConvertAll(releases, ConvertFromInternalModel); var biosSets = item.Read(Models.Metadata.Machine.BiosSetKey); if (biosSets != null && biosSets.Length > 0) - { - gameBase.BiosSet = biosSets - .Where(b => b != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.BiosSet = Array.ConvertAll(biosSets, ConvertFromInternalModel); var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) - { - gameBase.Rom = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Rom = Array.ConvertAll(roms, ConvertFromInternalModel); var disks = item.Read(Models.Metadata.Machine.DiskKey); if (disks != null && disks.Length > 0) - { - gameBase.Disk = disks - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Disk = Array.ConvertAll(disks, ConvertFromInternalModel); var medias = item.Read(Models.Metadata.Machine.MediaKey); if (medias != null && medias.Length > 0) - { - gameBase.Media = medias - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Media = Array.ConvertAll(medias, ConvertFromInternalModel); var deviceRefs = item.Read(Models.Metadata.Machine.DeviceRefKey); if (deviceRefs != null && deviceRefs.Length > 0) - { - gameBase.DeviceRef = deviceRefs - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.DeviceRef = Array.ConvertAll(deviceRefs, ConvertFromInternalModel); var samples = item.Read(Models.Metadata.Machine.SampleKey); if (samples != null && samples.Length > 0) - { - gameBase.Sample = samples - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Sample = Array.ConvertAll(samples, ConvertFromInternalModel); var archives = item.Read(Models.Metadata.Machine.ArchiveKey); if (archives != null && archives.Length > 0) - { - gameBase.Archive = archives - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.Archive = Array.ConvertAll(archives, ConvertFromInternalModel); var driver = item.Read(Models.Metadata.Machine.DriverKey); if (driver != null) @@ -207,12 +162,7 @@ namespace SabreTools.Serialization.CrossModel var softwareLists = item.Read(Models.Metadata.Machine.SoftwareListKey); if (softwareLists != null && softwareLists.Length > 0) - { - gameBase.SoftwareList = softwareLists - .Where(m => m != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + gameBase.SoftwareList = Array.ConvertAll(softwareLists, ConvertFromInternalModel); return gameBase; } diff --git a/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs b/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs index a9a844c9..527458eb 100644 --- a/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs @@ -21,11 +21,7 @@ namespace SabreTools.Serialization.CrossModel var machines = new List(); if (item.Game != null && item.Game.Length > 0) - { - machines.AddRange(item.Game - .Where(g => g != null) - .Select(ConvertMachineToInternalModel)); - } + machines.AddRange(Array.ConvertAll(item.Game, ConvertMachineToInternalModel)); if (item.Dir != null && item.Dir.Length > 0) { @@ -106,15 +102,12 @@ namespace SabreTools.Serialization.CrossModel if (item.Game == null || item.Game.Length == 0) return []; - return item.Game - .Where(g => g != null) - .Select(game => + return Array.ConvertAll(item.Game, g => { - var machine = ConvertMachineToInternalModel(game); + var machine = ConvertMachineToInternalModel(g); machine[Models.Metadata.Machine.DirNameKey] = item.Name; return machine; - }) - .ToArray(); + }); } /// @@ -147,34 +140,34 @@ namespace SabreTools.Serialization.CrossModel }; if (item.Release != null && item.Release.Length > 0) - machine[Models.Metadata.Machine.ReleaseKey] = item.Release.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.ReleaseKey] = Array.ConvertAll(item.Release, ConvertToInternalModel); if (item.BiosSet != null && item.BiosSet.Length > 0) - machine[Models.Metadata.Machine.BiosSetKey] = item.BiosSet.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.BiosSetKey] = Array.ConvertAll(item.BiosSet, ConvertToInternalModel); if (item.Rom != null && item.Rom.Length > 0) - machine[Models.Metadata.Machine.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.RomKey] = Array.ConvertAll(item.Rom, ConvertToInternalModel); if (item.Disk != null && item.Disk.Length > 0) - machine[Models.Metadata.Machine.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.DiskKey] = Array.ConvertAll(item.Disk, ConvertToInternalModel); if (item.Media != null && item.Media.Length > 0) - machine[Models.Metadata.Machine.MediaKey] = item.Media.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.MediaKey] = Array.ConvertAll(item.Media, ConvertToInternalModel); if (item.DeviceRef != null && item.DeviceRef.Length > 0) - machine[Models.Metadata.Machine.DeviceRefKey] = item.DeviceRef.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.DeviceRefKey] = Array.ConvertAll(item.DeviceRef, ConvertToInternalModel); if (item.Sample != null && item.Sample.Length > 0) - machine[Models.Metadata.Machine.SampleKey] = item.Sample.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.SampleKey] = Array.ConvertAll(item.Sample, ConvertToInternalModel); if (item.Archive != null && item.Archive.Length > 0) - machine[Models.Metadata.Machine.ArchiveKey] = item.Archive.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.ArchiveKey] = Array.ConvertAll(item.Archive, ConvertToInternalModel); if (item.Driver != null) machine[Models.Metadata.Machine.DriverKey] = ConvertToInternalModel(item.Driver); if (item.SoftwareList != null && item.SoftwareList.Length > 0) - machine[Models.Metadata.Machine.SoftwareListKey] = item.SoftwareList.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.SoftwareListKey] = Array.ConvertAll(item.SoftwareList, ConvertToInternalModel); return machine; } diff --git a/SabreTools.Serialization/CrossModel/M1.Deserializer.cs b/SabreTools.Serialization/CrossModel/M1.Deserializer.cs index fa31c897..9ce40783 100644 --- a/SabreTools.Serialization/CrossModel/M1.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/M1.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.CrossModel @@ -16,12 +16,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - m1.Game = machines - .Where(m => m != null) - .Select(Listxml.ConvertMachineFromInternalModel) - .ToArray(); - } + m1.Game = Array.ConvertAll(machines, Listxml.ConvertMachineFromInternalModel); return m1; } diff --git a/SabreTools.Serialization/CrossModel/M1.Serializer.cs b/SabreTools.Serialization/CrossModel/M1.Serializer.cs index 9ab2faf9..34257c0c 100644 --- a/SabreTools.Serialization/CrossModel/M1.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/M1.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.CrossModel @@ -18,10 +18,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.Game != null && item.Game.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Game - .Where(g => g != null) - .Select(Listxml.ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.Game, Listxml.ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/OfflineList.Deserializer.cs b/SabreTools.Serialization/CrossModel/OfflineList.Deserializer.cs index 737ca4a8..6e6481d8 100644 --- a/SabreTools.Serialization/CrossModel/OfflineList.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/OfflineList.Deserializer.cs @@ -1,3 +1,4 @@ +using System; using System.Linq; using SabreTools.Models.OfflineList; using SabreTools.Serialization.Interfaces; @@ -20,10 +21,7 @@ namespace SabreTools.Serialization.CrossModel { dat.Games = new Games { - Game = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray() + Game = Array.ConvertAll(machines, ConvertMachineFromInternalModel), }; } @@ -103,14 +101,10 @@ namespace SabreTools.Serialization.CrossModel var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) { - game.RomSize = roms - .Select(rom => rom.ReadString(Models.Metadata.Rom.SizeKey)) - .FirstOrDefault(s => s != null); + var romSizes = Array.ConvertAll(roms, r => r.ToString()); + game.RomSize = romSizes.FirstOrDefault(s => s != null); - var romCRCs = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); + var romCRCs = Array.ConvertAll(roms, ConvertFromInternalModel);; game.Files = new Models.OfflineList.Files { RomCRC = romCRCs }; } diff --git a/SabreTools.Serialization/CrossModel/OfflineList.Serializer.cs b/SabreTools.Serialization/CrossModel/OfflineList.Serializer.cs index 727ba381..4b592218 100644 --- a/SabreTools.Serialization/CrossModel/OfflineList.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/OfflineList.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.OfflineList; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.Games?.Game != null && item.Games.Game.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Games.Game - .Where(g => g != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.Games.Game, ConvertMachineToInternalModel); } return metadataFile; @@ -84,15 +82,13 @@ namespace SabreTools.Serialization.CrossModel if (item.Files?.RomCRC != null && item.Files.RomCRC.Length > 0) { - machine[Models.Metadata.Machine.RomKey] = item.Files.RomCRC - .Where(r => r != null) - .Select(romCRC => - { - var rom = ConvertToInternalModel(romCRC); - rom[Models.Metadata.Rom.SizeKey] = item.RomSize; - return rom; - }) - .ToArray(); + machine[Models.Metadata.Machine.RomKey] + = Array.ConvertAll(item.Files.RomCRC, romCRC => + { + var rom = ConvertToInternalModel(romCRC); + rom[Models.Metadata.Rom.SizeKey] = item.RomSize; + return rom; + }); } return machine; diff --git a/SabreTools.Serialization/CrossModel/OpenMSX.Deserializer.cs b/SabreTools.Serialization/CrossModel/OpenMSX.Deserializer.cs index 0d00cdd3..a47575dc 100644 --- a/SabreTools.Serialization/CrossModel/OpenMSX.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/OpenMSX.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.OpenMSX; using SabreTools.Serialization.Interfaces; @@ -17,12 +17,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - softwareDb.Software = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + softwareDb.Software = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return softwareDb; } @@ -56,12 +51,7 @@ namespace SabreTools.Serialization.CrossModel var dumps = item.Read(Models.Metadata.Machine.DumpKey); if (dumps != null && dumps.Length > 0) - { - game.Dump = dumps - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + game.Dump = Array.ConvertAll(dumps, ConvertFromInternalModel); return game; } diff --git a/SabreTools.Serialization/CrossModel/OpenMSX.Serializer.cs b/SabreTools.Serialization/CrossModel/OpenMSX.Serializer.cs index c4f469f2..26fa5fdc 100644 --- a/SabreTools.Serialization/CrossModel/OpenMSX.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/OpenMSX.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.OpenMSX; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.Software != null && item.Software.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Software - .Where(s => s != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.Software, ConvertMachineToInternalModel); } return metadataFile; @@ -57,10 +55,8 @@ namespace SabreTools.Serialization.CrossModel if (item.Dump != null && item.Dump.Length > 0) { - machine[Models.Metadata.Machine.DumpKey] = item.Dump - .Where(d => d != null) - .Select(ConvertToInternalModel) - .ToArray(); + machine[Models.Metadata.Machine.DumpKey] + = Array.ConvertAll(item.Dump, ConvertToInternalModel); } return machine; diff --git a/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs b/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs index 9d7407b7..b4f7d2a6 100644 --- a/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs @@ -93,10 +93,7 @@ namespace SabreTools.Serialization.CrossModel if (roms == null) return []; - return roms - .Where(r => r != null) - .Select(rom => ConvertFromInternalModel(rom, item)) - .ToArray(); + return Array.ConvertAll(roms, r => ConvertFromInternalModel(r, item)); } /// diff --git a/SabreTools.Serialization/CrossModel/RomCenter.Serializer.cs b/SabreTools.Serialization/CrossModel/RomCenter.Serializer.cs index 1a9f2a7e..d35cd06c 100644 --- a/SabreTools.Serialization/CrossModel/RomCenter.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/RomCenter.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.RomCenter; using SabreTools.Serialization.Interfaces; @@ -19,9 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (obj?.Games?.Rom != null && obj.Games.Rom.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Games.Rom - .Where(r => r != null) - .Select(ConvertMachineToInternalModel).ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Games.Rom, ConvertMachineToInternalModel); } return metadataFile; diff --git a/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs b/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs index 6624de41..52bb03d1 100644 --- a/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs @@ -1,3 +1,4 @@ +using System; using System.Collections.Generic; using System.Linq; using SabreTools.Models.SeparatedValue; @@ -50,25 +51,22 @@ namespace SabreTools.Serialization.CrossModel var roms = item.Read(Models.Metadata.Machine.RomKey); if (roms != null && roms.Length > 0) { - rowItems.AddRange(roms - .Where(r => r != null) - .Select(rom => ConvertFromInternalModel(rom, item, header))); + rowItems.AddRange( + Array.ConvertAll(roms, r => ConvertFromInternalModel(r, item, header))); } var disks = item.Read(Models.Metadata.Machine.DiskKey); if (disks != null && disks.Length > 0) { - rowItems.AddRange(disks - .Where(d => d != null) - .Select(disk => ConvertFromInternalModel(disk, item, header))); + rowItems.AddRange( + Array.ConvertAll(disks, d => ConvertFromInternalModel(d, item, header))); } var media = item.Read(Models.Metadata.Machine.MediaKey); if (media != null && media.Length > 0) { - rowItems.AddRange(media - .Where(m => m != null) - .Select(medium => ConvertFromInternalModel(medium, item, header))); + rowItems.AddRange( + Array.ConvertAll(media, m => ConvertFromInternalModel(m, item, header))); } return rowItems.ToArray(); diff --git a/SabreTools.Serialization/CrossModel/SeparatedValue.Serializer.cs b/SabreTools.Serialization/CrossModel/SeparatedValue.Serializer.cs index 2df42941..14e2f543 100644 --- a/SabreTools.Serialization/CrossModel/SeparatedValue.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/SeparatedValue.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.SeparatedValue; using SabreTools.Serialization.Interfaces; @@ -18,7 +18,10 @@ namespace SabreTools.Serialization.CrossModel }; if (obj?.Row != null && obj.Row.Length > 0) - metadataFile[Models.Metadata.MetadataFile.MachineKey] = obj.Row.Select(ConvertMachineToInternalModel).ToArray(); + { + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(obj.Row, ConvertMachineToInternalModel); + } return metadataFile; } diff --git a/SabreTools.Serialization/CrossModel/SoftwareList.Deserializer.cs b/SabreTools.Serialization/CrossModel/SoftwareList.Deserializer.cs index 757494ce..6c5fa3cb 100644 --- a/SabreTools.Serialization/CrossModel/SoftwareList.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/SoftwareList.Deserializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.SoftwareList; using SabreTools.Serialization.Interfaces; @@ -17,12 +17,7 @@ namespace SabreTools.Serialization.CrossModel var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); if (machines != null && machines.Length > 0) - { - metadataFile.Software = machines - .Where(m => m != null) - .Select(ConvertMachineFromInternalModel) - .ToArray(); - } + metadataFile.Software = Array.ConvertAll(machines, ConvertMachineFromInternalModel); return metadataFile; } @@ -59,30 +54,15 @@ namespace SabreTools.Serialization.CrossModel var infos = item.Read(Models.Metadata.Machine.InfoKey); if (infos != null && infos.Length > 0) - { - software.Info = infos - .Where(i => i != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + software.Info = Array.ConvertAll(infos, ConvertFromInternalModel); var sharedFeats = item.Read(Models.Metadata.Machine.SharedFeatKey); if (sharedFeats != null && sharedFeats.Length > 0) - { - software.SharedFeat = sharedFeats - .Where(s => s != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + software.SharedFeat = Array.ConvertAll(sharedFeats, ConvertFromInternalModel); var parts = item.Read(Models.Metadata.Machine.PartKey); if (parts != null && parts.Length > 0) - { - software.Part = parts - .Where(p => p != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + software.Part = Array.ConvertAll(parts, ConvertFromInternalModel); return software; } @@ -102,12 +82,7 @@ namespace SabreTools.Serialization.CrossModel var roms = item.Read(Models.Metadata.DataArea.RomKey); if (roms != null && roms.Length > 0) - { - dataArea.Rom = roms - .Where(r => r != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + dataArea.Rom = Array.ConvertAll(roms,ConvertFromInternalModel); return dataArea; } @@ -126,12 +101,7 @@ namespace SabreTools.Serialization.CrossModel var dipValues = item.Read(Models.Metadata.DipSwitch.DipValueKey); if (dipValues != null && dipValues.Length > 0) - { - dipSwitch.DipValue = dipValues - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + dipSwitch.DipValue = Array.ConvertAll(dipValues, ConvertFromInternalModel); return dipSwitch; } @@ -178,12 +148,7 @@ namespace SabreTools.Serialization.CrossModel var disks = item.Read(Models.Metadata.DiskArea.DiskKey); if (disks != null && disks.Length > 0) - { - diskArea.Disk = disks - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + diskArea.Disk = Array.ConvertAll(disks, ConvertFromInternalModel); return diskArea; } @@ -227,39 +192,19 @@ namespace SabreTools.Serialization.CrossModel var features = item.Read(Models.Metadata.Part.FeatureKey); if (features != null && features.Length > 0) - { - part.Feature = features - .Where(f => f != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + part.Feature = Array.ConvertAll(features, ConvertFromInternalModel); var dataAreas = item.Read(Models.Metadata.Part.DataAreaKey); if (dataAreas != null && dataAreas.Length > 0) - { - part.DataArea = dataAreas - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + part.DataArea = Array.ConvertAll(dataAreas, ConvertFromInternalModel); var diskAreas = item.Read(Models.Metadata.Part.DiskAreaKey); if (diskAreas != null && diskAreas.Length > 0) - { - part.DiskArea = diskAreas - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + part.DiskArea = Array.ConvertAll(diskAreas, ConvertFromInternalModel); var dipSwitches = item.Read(Models.Metadata.Part.DipSwitchKey); if (dipSwitches != null && dipSwitches.Length > 0) - { - part.DipSwitch = dipSwitches - .Where(d => d != null) - .Select(ConvertFromInternalModel) - .ToArray(); - } + part.DipSwitch = Array.ConvertAll(dipSwitches, ConvertFromInternalModel); return part; } diff --git a/SabreTools.Serialization/CrossModel/SoftwareList.Serializer.cs b/SabreTools.Serialization/CrossModel/SoftwareList.Serializer.cs index 3d3e7a46..b0e6276e 100644 --- a/SabreTools.Serialization/CrossModel/SoftwareList.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/SoftwareList.Serializer.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System; using SabreTools.Models.SoftwareList; using SabreTools.Serialization.Interfaces; @@ -19,10 +19,8 @@ namespace SabreTools.Serialization.CrossModel if (item?.Software != null && item.Software.Length > 0) { - metadataFile[Models.Metadata.MetadataFile.MachineKey] = item.Software - .Where(s => s != null) - .Select(ConvertMachineToInternalModel) - .ToArray(); + metadataFile[Models.Metadata.MetadataFile.MachineKey] + = Array.ConvertAll(item.Software, ConvertMachineToInternalModel); } return metadataFile; @@ -59,13 +57,13 @@ namespace SabreTools.Serialization.CrossModel }; if (item.Info != null && item.Info.Length > 0) - machine[Models.Metadata.Machine.InfoKey] = item.Info.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.InfoKey] = Array.ConvertAll(item.Info, ConvertToInternalModel); if (item.SharedFeat != null && item.SharedFeat.Length > 0) - machine[Models.Metadata.Machine.SharedFeatKey] = item.SharedFeat.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.SharedFeatKey] = Array.ConvertAll(item.SharedFeat, ConvertToInternalModel); if (item.Part != null && item.Part.Length > 0) - machine[Models.Metadata.Machine.PartKey] = item.Part.Select(ConvertToInternalModel).ToArray(); + machine[Models.Metadata.Machine.PartKey] = Array.ConvertAll(item.Part, ConvertToInternalModel); return machine; } @@ -84,7 +82,7 @@ namespace SabreTools.Serialization.CrossModel }; if (item.Rom != null && item.Rom.Length > 0) - dataArea[Models.Metadata.DataArea.RomKey] = item.Rom.Select(ConvertToInternalModel).ToArray(); + dataArea[Models.Metadata.DataArea.RomKey] = Array.ConvertAll(item.Rom, ConvertToInternalModel); return dataArea; } @@ -102,7 +100,7 @@ namespace SabreTools.Serialization.CrossModel }; if (item.DipValue != null && item.DipValue.Length > 0) - dipSwitch[Models.Metadata.DipSwitch.DipValueKey] = item.DipValue.Select(ConvertToInternalModel).ToArray(); + dipSwitch[Models.Metadata.DipSwitch.DipValueKey] = Array.ConvertAll(item.DipValue, ConvertToInternalModel); return dipSwitch; } @@ -148,7 +146,7 @@ namespace SabreTools.Serialization.CrossModel }; if (item.Disk != null && item.Disk.Length > 0) - diskArea[Models.Metadata.DiskArea.DiskKey] = item.Disk.Select(ConvertToInternalModel).ToArray(); + diskArea[Models.Metadata.DiskArea.DiskKey] = Array.ConvertAll(item.Disk, ConvertToInternalModel); return diskArea; } @@ -191,16 +189,16 @@ namespace SabreTools.Serialization.CrossModel }; if (item.Feature != null && item.Feature.Length > 0) - part[Models.Metadata.Part.FeatureKey] = item.Feature.Select(ConvertToInternalModel).ToArray(); + part[Models.Metadata.Part.FeatureKey] = Array.ConvertAll(item.Feature, ConvertToInternalModel); if (item.DataArea != null && item.DataArea.Length > 0) - part[Models.Metadata.Part.DataAreaKey] = item.DataArea.Select(ConvertToInternalModel).ToArray(); + part[Models.Metadata.Part.DataAreaKey] = Array.ConvertAll(item.DataArea, ConvertToInternalModel); if (item.DiskArea != null && item.DiskArea.Length > 0) - part[Models.Metadata.Part.DiskAreaKey] = item.DiskArea.Select(ConvertToInternalModel).ToArray(); + part[Models.Metadata.Part.DiskAreaKey] = Array.ConvertAll(item.DiskArea, ConvertToInternalModel); if (item.DipSwitch != null && item.DipSwitch.Length > 0) - part[Models.Metadata.Part.DipSwitchKey] = item.DipSwitch.Select(ConvertToInternalModel).ToArray(); + part[Models.Metadata.Part.DipSwitchKey] = Array.ConvertAll(item.DipSwitch, ConvertToInternalModel); return part; } diff --git a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs index 78231bce..ffa41c9d 100644 --- a/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs +++ b/SabreTools.Serialization/Deserializers/BaseBinaryDeserializer.cs @@ -124,11 +124,11 @@ namespace SabreTools.Serialization.Deserializers List assemblyTypes = []; try { - assemblyTypes = assembly.GetTypes().ToList(); + assemblyTypes = [.. assembly.GetTypes()]; } catch (ReflectionTypeLoadException rtle) { - assemblyTypes = rtle.Types.Where(t => t != null)!.ToList(); + assemblyTypes = [.. rtle.Types]; } // Loop through all types diff --git a/SabreTools.Serialization/Deserializers/RomCenter.cs b/SabreTools.Serialization/Deserializers/RomCenter.cs index 64eaec83..74c66db0 100644 --- a/SabreTools.Serialization/Deserializers/RomCenter.cs +++ b/SabreTools.Serialization/Deserializers/RomCenter.cs @@ -195,17 +195,17 @@ namespace SabreTools.Serialization.Deserializers } // Add extra pieces and return - dat.ADDITIONAL_ELEMENTS = additional.Where(s => s != null).ToArray(); + dat.ADDITIONAL_ELEMENTS = [.. additional]; if (dat.Credits != null) - dat.Credits.ADDITIONAL_ELEMENTS = creditsAdditional.Where(s => s != null).ToArray(); + dat.Credits.ADDITIONAL_ELEMENTS = [.. creditsAdditional]; if (dat.Dat != null) - dat.Dat.ADDITIONAL_ELEMENTS = datAdditional.Where(s => s != null).ToArray(); + dat.Dat.ADDITIONAL_ELEMENTS = [.. datAdditional]; if (dat.Emulator != null) - dat.Emulator.ADDITIONAL_ELEMENTS = emulatorAdditional.Where(s => s != null).ToArray(); + dat.Emulator.ADDITIONAL_ELEMENTS = [.. emulatorAdditional]; if (dat.Games != null) { dat.Games.Rom = [.. roms]; - dat.Games.ADDITIONAL_ELEMENTS = gamesAdditional.Where(s => s != null).Select(s => s).ToArray(); + dat.Games.ADDITIONAL_ELEMENTS = [.. gamesAdditional]; } return dat; } diff --git a/SabreTools.Serialization/Printers/PortableExecutable.cs b/SabreTools.Serialization/Printers/PortableExecutable.cs index a21bcbb2..f9c4153e 100644 --- a/SabreTools.Serialization/Printers/PortableExecutable.cs +++ b/SabreTools.Serialization/Printers/PortableExecutable.cs @@ -1,13 +1,11 @@ using System; using System.Collections.Generic; -using System.Linq; using System.Text; using System.Xml; using SabreTools.ASN1; using SabreTools.IO.Extensions; using SabreTools.Models.PortableExecutable; using SabreTools.Serialization.Interfaces; -using static SabreTools.Serialization.Extensions; namespace SabreTools.Serialization.Printers { @@ -999,7 +997,8 @@ namespace SabreTools.Serialization.Printers string padding = new(' ', (level + 1) * 2); // TODO: Use ordered list of base types to determine the shape of the data - builder.AppendLine($"{padding}Base types: {string.Join(", ", types.Select(t => t.ToString()).ToArray())}"); + var baseTypes = Array.ConvertAll(types.ToArray(), t => t.ToString()); + builder.AppendLine($"{padding}Base types: {string.Join(", ", baseTypes)}"); builder.AppendLine(level, $"{padding}Entry level"); builder.AppendLine(entry.DataRVA, $"{padding}Data RVA");