diff --git a/SabreTools.Filtering/Remover.cs b/SabreTools.Filtering/Remover.cs index f38ebdeb..d08c6f3d 100644 --- a/SabreTools.Filtering/Remover.cs +++ b/SabreTools.Filtering/Remover.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using SabreTools.Core; @@ -56,8 +57,6 @@ namespace SabreTools.Filtering /// List of field names public void PopulateExclusionsFromList(List fields) { - InternalStopwatch watch = new InternalStopwatch("Populating removals from list"); - // Instantiate the removers, if necessary DatHeaderRemover ??= new DatHeaderRemover(); DatItemRemover ??= new DatItemRemover(); @@ -66,6 +65,8 @@ namespace SabreTools.Filtering if (fields == null || fields.Count == 0) return; + InternalStopwatch watch = new InternalStopwatch("Populating removals from list"); + foreach (string field in fields) { // If we don't even have a possible field name @@ -104,11 +105,11 @@ namespace SabreTools.Filtering InternalStopwatch watch = new InternalStopwatch("Applying removals to DAT"); // Remove DatHeader fields - if (DatHeaderRemover != null) + if (DatHeaderRemover != null && DatHeaderRemover.DatHeaderFields.Any()) DatHeaderRemover.RemoveFields(datFile.Header); // Remove DatItem and Machine fields - if (DatItemRemover != null) + if (DatItemRemover != null && (DatItemRemover.MachineFields.Any() || DatItemRemover.DatItemFields.Any())) { Parallel.ForEach(datFile.Items.Keys, Globals.ParallelOptions, key => {