首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

C#泛型可否多主键的Dictionary<TKey, TValue>

2013-06-19 
C#泛型能否多主键的DictionaryTKey, TValue我想使用如下[解决办法]你可以将所有的主键封装成一个类,比如

C#泛型能否多主键的Dictionary<TKey, TValue>
我想使用如下


[解决办法]
你可以将所有的主键封装成一个类,
比如
class KeyClass
{
int Key1;
int Key2;
int Key3;
}
然后声明
Dictionary<KeyClass, object>
比对主键时,比对KeyClass中所有的键值

[解决办法]
实现并不难,实际上从哈希表的角度来说,就是多个Hash值指向同一个指针。
问题是你需要多少键值,其实把多个Dictionary封装一个List<Of Dictionary<key,value>>,value全部相同,想要几个键值都可以。
[解决办法]
Dictionary 其实不管你啥主键不关键的,人家要的是hashcode 你自己改写hashcode的计算方式就ok
[解决办法]
你自己把 

bool Equals(object obj)

int GetHashCode()

两个方法overide一下就可以了
[解决办法]
应该没有必要弄得那么繁琐,把多个值加起来拼成一个键应该就够用了.
[解决办法]
范型跟主键怎么纠结在一起?
[解决办法]
引用:
引用:你自己把 

bool Equals(object obj)

int GetHashCode()

两个方法overide一下就可以了

看来要通过泛型实现,需要C#语法支持才可以
上一个实现了相同效果的代码

C# code?12345678910111213141516171819202122        public c……


如果你想整DataTable的话,那么把Dictionary搞进来干什么呢?你可以自己设计一个Dictionary2<A,B,C>嘛。

这跟范型没有关系,这跟Dictionary的基本概念有关系。你根本就是另类地要求Dictionary不是原本的Dictionary了,而成了自己随便写的List<C>了。

热点排行