diff --git a/SabreTools.Serialization/Wrappers/WrapperBaseT.cs b/SabreTools.Serialization/Wrappers/WrapperBaseT.cs index da7d7b25..f9ff019e 100644 --- a/SabreTools.Serialization/Wrappers/WrapperBaseT.cs +++ b/SabreTools.Serialization/Wrappers/WrapperBaseT.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; using System.Text; using SabreTools.IO.Extensions; using SabreTools.Serialization.Interfaces; @@ -225,9 +224,8 @@ namespace SabreTools.Serialization.Wrappers // We are limiting the check for Unicode characters with a second byte of 0x00 for now var unicodeStrings = ReadStringsWithEncoding(sourceData, charLimit, Encoding.Unicode); - // Deduplicate the string list for storage + // Ignore duplicate strings across encodings List sourceStrings = [.. asciiStrings, .. utf8Strings, .. unicodeStrings]; - sourceStrings = [.. sourceStrings.Distinct()]; // Sort the strings and return sourceStrings.Sort(); @@ -261,14 +259,14 @@ namespace SabreTools.Serialization.Wrappers /// Character encoding to use for checking /// String list containing the requested data, empty on error /// TODO: Move to IO? - private List ReadStringsWithEncoding(byte[] sourceData, int charLimit, Encoding encoding) + private HashSet ReadStringsWithEncoding(byte[] sourceData, int charLimit, Encoding encoding) { // If we have an invalid character limit, default to 5 if (charLimit <= 0) charLimit = 5; - // Create the string list to return - var sourceStrings = new List(); + // Create the string hash set to return + var sourceStrings = new HashSet(); // Setup cached data int sourceDataIndex = 0;