嘿嘿, 一个参考意见,提个思路。
把所有的常见属性排序,并将每个属性的序列号固定,然后将所有属性和bool数组的相应元素对应,每个对象如果存在该属性,则相应元素为TRUE。
当选中多个图元时,直接获取所有图元的bool数组,按序列与计算,然后结果数组为true的元素对应的属性是所有图元都拥有的属性,最后再比较该的属性是否相同。
可以考虑将所有的图元从同一个基类继承,把该数组放在基类中实现比较方便的bool数组元素增加。
这样的处理方法,相对楼主的方案,在确定共同拥有的图元时,会有一个相对固定的比较时间,但不一定比楼主的快。