Using Custom Generic Collection faster with objects than List
I'm iterating through a List<>
to find a matching element. The problem is that object has only 2 significant values, Name
and Link开发者_开发百科
(both strings), but has some other values which I don't want to compare.
I'm thinking about using something like HashSet
(which is exactly what I'm searching for -- fast) from .NET 3.5 but target framework has to be 2.0. There is something called Power Collections here: http://powercollections.codeplex.com/, should I use that?
But maybe there is other way? If not, can you suggest me a suitable custom collection?
In .NET 2.0 instead of a HashSet<T>
you can use a Dictionary<K, V>
.
Dictionary
uses the hash code to perform key lookups so it has similar performace to the HashSet
. There are at least two approaches:
- Create a custom class or struct containing the Name and Link and use that as the key in the dictionary, and put the object as the value.
- Store the entire object as the key and provide a custom equality comparer that only looks at the Name and Link member, and set the value to null.
The second method is very similar to how you would use a HashSet if it were available.
How about this:
Custom class/collection wich will held List of objects and two dictionaries, one for the name and one for the link. Both of them will have a int value wich will be the index of object. I think that in that case I will only need to check if there is such int value of name dictionary that equals link dictionary int.
Is this a good approach?
精彩评论