小编典典

Lookup() 和 Dictionary(Of list()) 的区别

all

我试图围绕哪些数据结构最有效以及何时/何地使用哪些数据结构。

现在,可能是我只是对结构不够了解,但是ILookup(of key, ...)a 与 a 有什么不同Dictionary(of key, list(of ...))

另外,我想在ILookup哪里使用以及在程序速度/内存/数据访问等方面会更有效?


阅读 76

收藏
2022-06-29

共1个答案

小编典典

两个显着差异:

  • Lookup是不可变的。耶 :) (至少,我相信具体Lookup类是不可变的,并且ILookup接口不提供任何可变成员。当然, 可能 还有其他可变实现。)
  • 当您查找一个不存在于查找中的键时,您会得到一个空序列而不是KeyNotFoundException. (因此没有TryGetValue,AFAICR。)

它们在效率上可能相当——例如,查找很可能Dictionary<TKey, GroupingImplementation<TValue>>在幕后使用 a
。根据您的要求在它们之间进行选择。就我个人而言,我发现查找通常比 a 更合适Dictionary<TKey, List<TValue>>,主要是由于上面的前两点。

请注意,作为实现细节,其具体实现IGrouping<,>用于值 implements IList<TValue>,这意味着使用 with
等是有效Count()ElementAt()

2022-06-29