不该出现的集合访问失误
前天编写一段Excel导入程序时,发生了一个小小遗憾,写出来供朋友借鉴:为了验证数据合法性,我将字段的合法数据依次加入一个集合,然后遍历每个待验证的值,用集合的Contain方法验证。
不幸的是,对于明明是合法的值,验证总是通不过,真急人啊。
为了查清原因,我又检查集合中的元素与待验证的值的类型,类型也是一致的,再比较相等,发现也是相等的,那为什么Contain方法总是通不过呢?在MSDN总查集合类的用法,也仅显示BooleanValue=Object.Contain(key)样式的用法。心想,这就怪了,简单的比较,怎么就不行呢?
再仔细阅读发现,集合的Contain方法,是键值的比较,必须在将元素加入集合时同时指定键值,即使用这样的方法:
Object.Contain(Value,Key)
比较是“健值”的比较,为了便于直接比较,可以用值来作键值的方法。
如要检查合法的性别,在将“男”和“女”这两个合法值加入时必须使用:
Object.Add("男","男")
Object.Add("女","女")
之后,就可以用Contain方法比较值"男"、"女"在不在集合SEX中了。