最近学NHibernate,集合的几种类型搞得我头晕.我问了几个搞java的同学,都说集合一般用set,但是NHibernate里set得声明成IDictionary,我就搞不懂,干嘛要用个键/值对去存放集合呢?后来跟同学讨论了好久,才搞清楚真相:
Set在java里头是列表而不是字典,他和List不同的地方是不能有重复的值.问题就在.net本身没有类似set的东西,于是NHibernate里头自己做了几个set类型,他却是实现IDictionary的,可能是利用一个内部的HashTable来阻止插入重复的值.然后往集合插入实体的时候,就把实体当作键,然后随便new一个object作为值...很别扭啊
是作者在偷懒,还是另有原因?
NHiberate的set
转载于:https://www.cnblogs.com/Yok/archive/2004/10/10/50362.html