From 3ed07dd29923ea48e47f690760228990b6330947 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 12 Nov 2024 15:30:33 -0500 Subject: [PATCH] Linq is good, but it can be better --- .../CrossModel/ArchiveDotOrg.Deserializer.cs | 10 +++++----- .../CrossModel/AttractMode.Deserializer.cs | 10 +++++----- .../CrossModel/EverdriveSMDB.Deserializer.cs | 15 ++++++++------- .../CrossModel/Logiqx.Serializer.cs | 6 ++---- .../CrossModel/RomCenter.Deserializer.cs | 13 +++++-------- .../CrossModel/SeparatedValue.Deserializer.cs | 9 ++++----- 6 files changed, 29 insertions(+), 34 deletions(-) diff --git a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs index ae39567f..5c9bc10c 100644 --- a/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/ArchiveDotOrg.Deserializer.cs @@ -1,5 +1,5 @@ -using System.Linq; using System; +using System.Collections.Generic; using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.CrossModel @@ -15,13 +15,13 @@ namespace SabreTools.Serialization.CrossModel var files = new Models.ArchiveDotOrg.Files(); var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); - if (machines != null && machines.Length > 0) + var items = new List(); + foreach (var machine in machines ?? []) { - files.File = machines - .SelectMany(ConvertFromInternalModel) - .ToArray(); + items.AddRange(ConvertFromInternalModel(machine)); } + files.File = [.. items]; return files; } diff --git a/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs b/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs index 4dffbe18..93557dd6 100644 --- a/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/AttractMode.Deserializer.cs @@ -1,5 +1,5 @@ using System; -using System.Linq; +using System.Collections.Generic; using SabreTools.Models.AttractMode; using SabreTools.Serialization.Interfaces; @@ -17,13 +17,13 @@ namespace SabreTools.Serialization.CrossModel var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile(); var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); - if (machines != null && machines.Length > 0) + var items = new List(); + foreach (var machine in machines ?? []) { - metadataFile.Row = machines - .SelectMany(ConvertMachineFromInternalModel) - .ToArray(); + items.AddRange(ConvertMachineFromInternalModel(machine)); } + metadataFile.Row = [.. items]; return metadataFile; } diff --git a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs index fd971717..d167efb8 100644 --- a/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/EverdriveSMDB.Deserializer.cs @@ -1,5 +1,5 @@ using System; -using System.Linq; +using System.Collections.Generic; using SabreTools.Models.EverdriveSMDB; using SabreTools.Serialization.Interfaces; @@ -16,12 +16,13 @@ namespace SabreTools.Serialization.CrossModel var metadataFile = new MetadataFile(); var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); - if (machines != null && machines.Length > 0) - { - metadataFile.Row = machines - .SelectMany(ConvertMachineFromInternalModel) - .ToArray(); - } + var items = new List(); + foreach (var machine in machines ?? []) + { + items.AddRange(ConvertMachineFromInternalModel(machine)); + } + + metadataFile.Row = [.. items]; return metadataFile; } diff --git a/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs b/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs index 35d8d6b7..ff9e1694 100644 --- a/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs +++ b/SabreTools.Serialization/CrossModel/Logiqx.Serializer.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using SabreTools.Models.Logiqx; using SabreTools.Serialization.Interfaces; @@ -23,10 +22,9 @@ namespace SabreTools.Serialization.CrossModel if (item.Game != null && item.Game.Length > 0) machines.AddRange(Array.ConvertAll(item.Game, ConvertMachineToInternalModel)); - if (item.Dir != null && item.Dir.Length > 0) + foreach (var dir in item.Dir ?? []) { - machines.AddRange(item.Dir - .SelectMany(ConvertDirToInternalModel)); + machines.AddRange(ConvertDirToInternalModel(dir)); } if (machines.Count > 0) diff --git a/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs b/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs index a05349cf..a155bfd9 100644 --- a/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/RomCenter.Deserializer.cs @@ -1,5 +1,5 @@ using System; -using System.Linq; +using System.Collections.Generic; using SabreTools.Models.RomCenter; using SabreTools.Serialization.Interfaces; @@ -17,16 +17,13 @@ namespace SabreTools.Serialization.CrossModel var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile(); var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); - if (machines != null && machines.Length > 0) + var items = new List(); + foreach (var machine in machines ?? []) { - metadataFile.Games = new Games - { - Rom = machines - .SelectMany(ConvertMachineFromInternalModel) - .ToArray() - }; + items.AddRange(ConvertMachineFromInternalModel(machine)); } + metadataFile.Games = new Games { Rom = [.. items] }; return metadataFile; } diff --git a/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs b/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs index af973c3a..a30395d9 100644 --- a/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs +++ b/SabreTools.Serialization/CrossModel/SeparatedValue.Deserializer.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using SabreTools.Models.SeparatedValue; using SabreTools.Serialization.Interfaces; @@ -18,13 +17,13 @@ namespace SabreTools.Serialization.CrossModel var metadataFile = header != null ? ConvertHeaderFromInternalModel(header) : new MetadataFile(); var machines = obj.Read(Models.Metadata.MetadataFile.MachineKey); - if (machines != null && machines.Length > 0) + var items = new List(); + foreach (var machine in machines ?? []) { - metadataFile.Row = machines - .SelectMany(m => ConvertMachineFromInternalModel(m, header)) - .ToArray(); + items.AddRange(ConvertMachineFromInternalModel(machine, header)); } + metadataFile.Row = [.. items]; return metadataFile; }