internal int AddObjectToTable(IPlistElement obj) { if (obj.ElementType == PlistElementType.Array || obj.ElementType == PlistElementType.Dictionary) { // Don't compare these; Assume all arrays and dictionaries are unique objOffsets.Add(this.BaseStream.Position); objects.Add(obj); return(objects.Count); } for (int i = 0; i < objects.Count; i++) { IPlistElement testAgainst = objects[i]; if (obj.Equals(objects[i])) { return(i); } } // this object is unique objOffsets.Add(this.BaseStream.Position); objects.Add(obj); return(objects.Count); }