diff --git a/SabreTools.Metadata.DatFiles/ItemDatabase.cs b/SabreTools.Metadata.DatFiles/ItemDatabase.cs index 9d9c168b..11226de8 100644 --- a/SabreTools.Metadata.DatFiles/ItemDatabase.cs +++ b/SabreTools.Metadata.DatFiles/ItemDatabase.cs @@ -238,18 +238,6 @@ namespace SabreTools.Metadata.DatFiles return default; } - /// - /// Remove a value from the table, returning success - /// - public bool Remove(long index) - { -#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER - return _table.TryRemove(index, out var _); -#else - return _table.Remove(index); -#endif - } - /// /// Remove all values that match a function /// @@ -261,8 +249,16 @@ namespace SabreTools.Metadata.DatFiles for (int i = 0; i < Indexes.Length; i++) #endif { - if (func(_table[i])) - Remove(i); + var value = Get(i); + if (value is null) +#if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER + return; +#else + continue; +#endif + + if (func(value)) + TryRemove(i, out _); #if NET40_OR_GREATER || NETCOREAPP || NETSTANDARD2_0_OR_GREATER }); #else