From 66b8201fd6b9935743c41ca79825ae751fd0ede0 Mon Sep 17 00:00:00 2001 From: Marco De Salvo Date: Fri, 4 Oct 2024 16:59:07 +0200 Subject: [PATCH] Make collection natively support duplicate elements --- RDFSharp.Test/Model/RDFCollectionTest.cs | 6 +++--- RDFSharp/Model/RDFCollection.cs | 13 +++++-------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/RDFSharp.Test/Model/RDFCollectionTest.cs b/RDFSharp.Test/Model/RDFCollectionTest.cs index 9f702225..1378683d 100644 --- a/RDFSharp.Test/Model/RDFCollectionTest.cs +++ b/RDFSharp.Test/Model/RDFCollectionTest.cs @@ -86,7 +86,7 @@ public void ShouldAddItemsToCollection(RDFModelEnums.RDFItemTypes itemType) coll.AddItem(new RDFResource("http://item/")); } - Assert.IsTrue(coll.ItemsCount == 1); + Assert.IsTrue(coll.ItemsCount == 2); //Duplicates are allowed (e.g.: OWL property chains) Assert.IsFalse(coll.ReificationSubject.Equals(RDFVocabulary.RDF.NIL)); } @@ -162,7 +162,7 @@ public void ShouldNotRemoveItemsFromCollectionBecauseWrongType(RDFModelEnums.RDF coll.RemoveItem(new RDFPlainLiteral("lit")); } - Assert.IsTrue(coll.ItemsCount == 1); + Assert.IsTrue(coll.ItemsCount == 2); Assert.IsFalse(coll.ReificationSubject.Equals(RDFVocabulary.RDF.NIL)); } @@ -185,7 +185,7 @@ public void ShouldNotRemoveItemsFromCollectionBecauseNull(RDFModelEnums.RDFItemT coll.RemoveItem(null as RDFResource); } - Assert.IsTrue(coll.ItemsCount == 1); + Assert.IsTrue(coll.ItemsCount == 2); Assert.IsFalse(coll.ReificationSubject.Equals(RDFVocabulary.RDF.NIL)); } diff --git a/RDFSharp/Model/RDFCollection.cs b/RDFSharp/Model/RDFCollection.cs index 131430c1..51590061 100644 --- a/RDFSharp/Model/RDFCollection.cs +++ b/RDFSharp/Model/RDFCollection.cs @@ -115,14 +115,11 @@ public RDFCollection AddItem(RDFLiteral item) /// internal void AddItemInternal(RDFPatternMember item) { - if (Items.Find(x => x.Equals(item)) == null) - { - //Add item to collection - Items.Add(item); - //Update ReificationSubject (if collection has left "rdf:nil" configuration) - if (ItemsCount == 1) - ReificationSubject = InternalReificationSubject; - } + //Add item to collection + Items.Add(item); + //Update ReificationSubject (if collection has left "rdf:nil" configuration) + if (ItemsCount == 1) + ReificationSubject = InternalReificationSubject; } #endregion