public ISet<string> Intersection([Nullable] AttributeDict other)
{
if (other == null || other.Size() == 0 || Size() == 0)
{
return new HashSet<string>();
}
ISet<string> result = new HashSet<string>(attributes.Keys);
result.IntersectWith(other.attributes.Keys);
return result;
}