C# 使用字典<;int,List<;obj>&燃气轮机;或简单、单一的大型收藏<;obj>;用于在大型列表集合中获取

C# 使用字典<;int,List<;obj>&燃气轮机;或简单、单一的大型收藏<;obj>;用于在大型列表集合中获取,c#,list,dictionary,observablecollection,C#,List,Dictionary,Observablecollection,我当前的实现是,我的集合中有大量对象。项目仅在启动时插入一次 然后这个列表用于搜索和从中提取对象 每个对象都被指定给具有int值的特定类型 e、 在一份100种冰淇淋物品的清单中,20种属于香草类,25种属于芒果类等等。类别具有唯一的int标识符 我是否应该用字典替换当前的实现以获得更好的性能?如果您可以为您的程序识别用户将对数据执行搜索的有限密钥集,那么使用字典是一种方法 很难提出真实的东西,因为数据收集的概念太过夸大其词。除了性能之外(100项是微不足道的) 我认为你的代码应该反映你的意图。

我当前的实现是,我的集合中有大量对象。项目仅在启动时插入一次

然后这个列表用于搜索和从中提取对象

每个对象都被指定给具有
int
值的特定类型

e、 在一份100种冰淇淋物品的清单中,20种属于香草类,25种属于芒果类等等。类别具有唯一的
int
标识符


我是否应该用
字典
替换当前的实现以获得更好的性能?

如果您可以为您的程序识别用户将对数据执行搜索的有限密钥集,那么使用
字典
是一种方法

很难提出真实的东西,因为数据收集的概念太过夸大其词。

除了性能之外(100项是微不足道的)

我认为你的代码应该反映你的意图。如果要将这些对象视为列表,则应该有一个列表。但是,当您基于id执行查找时,您应该有一个字典


您应该将这本词典包装在一个(静态/单例)类中,而不是随意地传递这本词典。特别是如果你需要线程安全。

你是否需要找到所有的“冰淇淋”,所有的“Vanilla”。。。?如果是,请使用
词典
。否则,只需使用大的集合-没有太多的性能增益。是的。我需要找到并检索香草、芒果等类型的所有冰淇淋对象。。