我试图围绕哪些数据结构最有效以及何时/何地使用哪些数据结构。
现在,可能是我只是对结构不够了解,但是ILookup(of key, ...)a 与 a 有什么不同Dictionary(of key, list(of ...))?
ILookup(of key, ...)
Dictionary(of key, list(of ...))
另外,我想在ILookup哪里使用以及在程序速度/内存/数据访问等方面会更有效?
ILookup
两个显着差异:
Lookup
KeyNotFoundException
TryGetValue
它们在效率上可能相当——例如,查找很可能Dictionary<TKey, GroupingImplementation<TValue>>在幕后使用 a 。根据您的要求在它们之间进行选择。就我个人而言,我发现查找通常比 a 更合适Dictionary<TKey, List<TValue>>,主要是由于上面的前两点。
Dictionary<TKey, GroupingImplementation<TValue>>
Dictionary<TKey, List<TValue>>
请注意,作为实现细节,其具体实现IGrouping<,>用于值 implements IList<TValue>,这意味着使用 with 等是有效Count()的ElementAt()。
IGrouping<,>
IList<TValue>
Count()
ElementAt()