diff --git a/SabreTools.Data.Extensions/MetadataExtensions.cs b/SabreTools.Data.Extensions/MetadataExtensions.cs index b4362a39..2629216d 100644 --- a/SabreTools.Data.Extensions/MetadataExtensions.cs +++ b/SabreTools.Data.Extensions/MetadataExtensions.cs @@ -859,25 +859,5 @@ namespace SabreTools.Data.Extensions } #endregion - - #region Reading - - /// - /// Read an item array from a given key, if possible - /// - public static T[]? ReadItemArray(this DictionaryBase self, string key) where T : DictionaryBase - { - var items = self.Read(key); - if (items == default) - { - var single = self.Read(key); - if (single != default) - items = [single]; - } - - return items; - } - - #endregion } } diff --git a/SabreTools.Data.Models/Metadata/DictionaryBase.cs b/SabreTools.Data.Models/Metadata/DictionaryBase.cs index e9011bb8..4548c583 100644 --- a/SabreTools.Data.Models/Metadata/DictionaryBase.cs +++ b/SabreTools.Data.Models/Metadata/DictionaryBase.cs @@ -132,6 +132,25 @@ namespace SabreTools.Data.Models.Metadata return this[key]!.ToString(); } + /// + /// Read a key as a T[], returning null on error + /// + public T[]? ReadArray(string key) + { + if (!ValidateReadKey(key)) + return null; + + var items = Read(key); + if (items is not null) + return items; + + var single = Read(key); + if (single is not null) + return [single]; + + return null; + } + /// /// Read a key as a string[], returning null on error ///