Generics Dictionary - modify ContainsKey and Key Lookup

G

Guest

Hi

I have a class that inherits from Generics Dictionary
The string that is used for the key is passed thru-out my pgm and sometimes
it has modifiers added to the key string that are used in the system.

The problem is now I have to strip the modifer to lookup in the Dictionary
and I have to copy this code whenever I need to lookup the key or if more
modifers are added

Is there someway for me to override the way the Dictionary Lookups keys
so I can write the code to strip the modifer in one place so when I do a
ContainsKey
of this[sFileName][sKey] - if will look for key and if not found try to find
again after replace????

Thanks



if (this[sFileName].ContainsKey(sKey))
{
return (this[sFileName][sKey].Info);
}
else if (this[sFileName].ContainsKey(sKey.Replace("#","")))
{
return (this[sFileName][sKey.Replace("#","")]Info);
}
else if (this[sFileName].ContainsKey(sKey.Replace("^","")))
{
return (this[sFileName][sKey.Replace("^","")]Info);
}
 
N

Nicholas Paldino [.NET/C# MVP]

You can implement the IEqualityComparer<T> interface, implementing the
Equals and GetHashCode methods to work on the modified keys for comparison,
and then pass that implementation to the dictionary.
 
J

Jeffrey Tan[MSFT]

Hi,

Have you reviewed Nicholas Paldino [.NET/C# MVP]'s reply to you? Does it
resolve your question? If you still need any help, please feel free to
feedback, thanks.

Best regards,
Jeffrey Tan
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top