相关疑难解决方法(0)

c#中的多键字典?

我知道BCL中没有一个,但有人能指出我一个好的开源吗?

By Multi我指的是2把钥匙.;-)

c# dictionary

112
推荐指数
10
解决办法
15万
查看次数

C#中的双向1对1字典

我正在寻找C#(2)中的通用双向1到1字典类,即.a BiDictionaryOneToOne<T, S>保证只包含每个值和键中的一个(无论如何最多为RefEquals),并且可以使用键或值进行搜索.有人知道,或者我应该自己实施吗?我不敢相信我是第一个需要这个的人......

这个问题的答案中有一个BiDictionary ,但它不适用于唯一元素(并且也不实现RemoveByFirst(T t)或RemoveBySecond(S s)).

谢谢!

.net c# collections

98
推荐指数
3
解决办法
2万
查看次数

如何实现多索引字典?

基本上我想要像Dictionary <Tkey1,TKey2,TValue>这样的东西,但不是(正如我在其他问题中看到过的那样)和AND中的键,但是在OR中.为了更好地解释:我希望能够在字典中找到只提供其中一个键的元素,而不是两者.

我还认为我们应该考虑线程安全性以及轻松扩展到Dictionary <Tkey1,TKey2,TKeyN,TValue>解决方案的能力......

c# generics collections dictionary thread-safety

30
推荐指数
3
解决办法
9261
查看次数

多键字典,其中只需要1个键来检索对象

互联网上有几个地方谈论有多键密钥字典,如:

c#中的多键字典?

要么

C#中的多键词典(另一种)?

我正在寻找一个多键字典,只要我只提供一个键,就可以检索我正在寻找的对象.换句话说,如果我在哪里:

 // multyKeyDictionary = instance of a multikeydictionary 
 multyKeyDictionary.add(key1, key2, someObject);
Run Code Online (Sandbox Code Playgroud)

那么我希望能够将someObject作为:

multyKeyDictionary[key1]; 要么 multyKeyDictionary[key2];

c# collections dictionary hashtable data-structures

2
推荐指数
1
解决办法
815
查看次数

字典和KeyValuePair

我对词典有疑问,希望你能帮助我.

我有以下声明:

class MainCollection<TKey1, TKey2, TValue> : Dictionary<KeyValuePair<TKey1, TKey2>, TValue>
Run Code Online (Sandbox Code Playgroud)

问题是我无法通过TKey1 TKey2 从这本词典中获取一个元素.有没有办法只通过TKey1或TKey2获得一个元素,而不是TKey1和TKey2?

我写了以下代码:

 public TValue GetItemByKey1(TKey1 key)
 {
     MainCollection<int, int, string> Coll = new MainCollection<int, int, string>();
     var value = from s in Coll where s.Key.Key == key select s.Value;
 }
Run Code Online (Sandbox Code Playgroud)

但它已经有两个问题:

  1. 编译错误:s.Key.Key == key => operator ==不能应用于int和TKey1类型
  2. 它看起来很难看.即使编译成功,我也不确定这是获取此类项目的最快方法.我猜词典应该更好.

我该如何解决这些错误?我在这里找不到任何相关的问题.提前致谢!

c# collections dictionary

1
推荐指数
1
解决办法
2400
查看次数