繁体   English   中英

使用自定义通用集合更快地使用对象而不是列表

[英]Using Custom Generic Collection faster with objects than List

我正在迭代List<>来找到匹配的元素。 问题是对象只有2个重要值, NameLink (两个字符串),但有一些我不想比较的其他值。

我正在考虑使用像.NET 3.5这样的HashSet (这正是我正在寻找的 - 快速),但目标框架必须是2.0。 这里有一些名为Power Collections的东西: http//powercollections.codeplex.com/ ,我应该使用它吗?

但也许有其他方式? 如果没有,你能给我一个合适的定制系列吗?

在.NET 2.0而不是HashSet<T>您可以使用Dictionary<K, V>

Dictionary使用哈希代码执行键查找,因此它具有与HashSet类似的性能。 至少有两种方法:

  • 创建一个包含Name和Link的自定义类或结构,并将其用作字典中的键,并将该对象作为值。
  • 将整个对象存储为键,并提供仅查看Name和Link成员的自定义相等比较器,并将该值设置为null。

第二种方法与使用HashSet的方式非常相似(如果可用)。

这个怎么样:

自定义类/集合将包含对象列表和两个字典,一个用于名称,一个用于链接。 它们都将具有一个int值,它将是对象的索引。 我认为在那种情况下我只需要检查是否存在等于链接字典int的名称字典的int值。

这是一个好方法吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM