diff --git a/SabreTools.DatItems/DatItem.cs b/SabreTools.DatItems/DatItem.cs index 22bd83b8..cc7b0374 100644 --- a/SabreTools.DatItems/DatItem.cs +++ b/SabreTools.DatItems/DatItem.cs @@ -559,8 +559,16 @@ namespace SabreTools.DatItems /// True if the items are duplicates, false otherwise public virtual bool Equals(DatItem? other) { + // If the other value is null + if (other == null) + return false; + + // Get the types for comparison + ItemType selfType = GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue(); + ItemType otherType = other.GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue(); + // If we don't have a matched type, return false - if (GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue() != other?.GetStringFieldValue(Models.Metadata.DatItem.TypeKey).AsEnumValue()) + if (selfType != otherType) return false; // Compare the internal models