diff --git a/SabreTools.Core/Tools/NumberHelper.cs b/SabreTools.Core/Tools/NumberHelper.cs index c9675bda..1c23978a 100644 --- a/SabreTools.Core/Tools/NumberHelper.cs +++ b/SabreTools.Core/Tools/NumberHelper.cs @@ -1,5 +1,4 @@ using System; -using System.Linq; namespace SabreTools.Core.Tools { @@ -156,11 +155,19 @@ namespace SabreTools.Core.Tools if (value.Length == 0) return false; + // Otherwise, make sure that every character is a proper match + for (int i = 0; i < value.Length; i++) + { + char c = value[i]; #if NET7_0_OR_GREATER - return value.All(c => char.IsAsciiHexDigit(c) || c == '.' || c == ','); + if (!char.IsAsciiHexDigit(c) && c != '.' && c != ',') #else - return value.All(c => c.IsAsciiHexDigit() || c == '.' || c == ','); + if (!c.IsAsciiHexDigit() && c != '.' && c != ',') #endif + return false; + } + + return true; } #if NETFRAMEWORK || NETCOREAPP3_1 || NET5_0 || NET6_0 diff --git a/SabreTools.Core/Tools/TextHelper.cs b/SabreTools.Core/Tools/TextHelper.cs index 70df48a1..1575c412 100644 --- a/SabreTools.Core/Tools/TextHelper.cs +++ b/SabreTools.Core/Tools/TextHelper.cs @@ -1,5 +1,5 @@ +using System; using System.IO; -using System.Linq; using System.Text.RegularExpressions; using SabreTools.Hashing; @@ -107,7 +107,7 @@ namespace SabreTools.Core.Tools if (string.IsNullOrEmpty(input)) return string.Empty; - return new string(input!.Where(c => c <= 255).ToArray()); + return new string(Array.FindAll(input!.ToCharArray(), c => c <= 255)); } #endregion @@ -195,12 +195,19 @@ namespace SabreTools.Core.Tools hash = hash.ToLowerInvariant(); // Otherwise, make sure that every character is a proper match + for (int i = 0; i < hash.Length; i++) + { + char c = hash[i]; #if NET7_0_OR_GREATER - if (hash.Any(c => !char.IsAsciiHexDigit(c))) + if (!char.IsAsciiHexDigit(c)) #else - if (hash.Any(c => !c.IsAsciiHexDigit())) + if (!c.IsAsciiHexDigit()) #endif - hash = string.Empty; + { + hash = string.Empty; + break; + } + } return hash; } diff --git a/SabreTools.Core/Tools/Utilities.cs b/SabreTools.Core/Tools/Utilities.cs index bf46d12f..4ee3b773 100644 --- a/SabreTools.Core/Tools/Utilities.cs +++ b/SabreTools.Core/Tools/Utilities.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Linq; using SabreTools.Hashing; using SabreTools.IO.Extensions; @@ -25,7 +24,7 @@ namespace SabreTools.Core.Tools return false; // Otherwise, they need to match exactly - return firstHash.SequenceEqual(secondHash); + return Matching.Extensions.EqualsExactly(firstHash, secondHash); } /// diff --git a/SabreTools.DatFiles/ItemDictionaryDB.cs b/SabreTools.DatFiles/ItemDictionaryDB.cs index 2830aae3..e5c50bc9 100644 --- a/SabreTools.DatFiles/ItemDictionaryDB.cs +++ b/SabreTools.DatFiles/ItemDictionaryDB.cs @@ -1069,16 +1069,15 @@ namespace SabreTools.DatFiles var datItems = itemIndices .FindAll(i => _items.ContainsKey(i)) - .Select(i => new KeyValuePair(i, _items[i])) - .ToList(); + .ConvertAll(i => new KeyValuePair(i, _items[i])); Sort(ref datItems, norename); #if NET40_OR_GREATER || NETCOREAPP - _buckets.TryAdd(bucketKeys[i], [.. datItems.Select(kvp => kvp.Key)]); + _buckets.TryAdd(bucketKeys[i], datItems.ConvertAll(kvp => kvp.Key)); }); #else - _buckets[bucketKeys[i]] = [.. datItems.Select(kvp => kvp.Key)]; + _buckets[bucketKeys[i]] = datItems.ConvertAll(kvp => kvp.Key); } #endif }