code_junkie

Convert IDictionary<string, string> keys to lowercase (C#)

Nov 11th, 2011
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. private static IDictionary<ILanguage, IDictionary<string, string>> ConvertKeysToLowerCase(
  2. IDictionary<ILanguage, IDictionary<string, string>> dictionaries)
  3. {
  4. IDictionary<ILanguage, IDictionary<string, string>> resultingConvertedDictionaries
  5. = new Dictionary<ILanguage, IDictionary<string, string>>();
  6. foreach(ILanguage keyLanguage in dictionaries.Keys)
  7. {
  8. IDictionary<string, string> convertedDictionatry = new Dictionary<string, string>();
  9. foreach(string key in dictionaries[keyLanguage].Keys)
  10. {
  11. convertedDictionatry.Add(key.ToLower(), dictionaries[keyLanguage][key]);
  12. }
  13. resultingConvertedDictionaries.Add(keyLanguage, convertedDictionatry);
  14. }
  15. return resultingConvertedDictionaries;
  16. }
  17.  
  18. Add(string key, string value) { dictionary.Add(key.ToLowerInvariant(), value) ; }
  19. public string this[string key]
  20. {
  21. get { return dictionary[key.ToLowerInvariant()]; }
  22. set { dictionary[key.ToLowerInvariant()] = value; }
  23. }
  24. // And so forth.
  25.  
  26. private static IDictionary<string, string> ConvertKeysToLowerCase(
  27. IDictionary<string, string> dictionaries)
  28. {
  29. var convertedDictionatry = new Dictionary<string, string>();
  30. foreach(string key in dictionaries.Keys)
  31. {
  32. convertedDictionatry.Add(key.ToLower(), dictionaries[key]);
  33. }
  34. return convertedDictionatry;
  35. }
  36.  
  37. // myLanguageDictionaries is of type IDictionary<ILanguage, IDictionary<string, string>>
  38. foreach (var dictionary in myLanguageDictionaries.Keys)
  39. {
  40. myLanguageDictionaries[dictionary].Value =
  41. ConvertKeysToLowerCase(myLanguageDictionaries[dictionary].Value);
  42. }
  43.  
  44. private static IDictionary<ILanguage, IDictionary<string, string>> ConvertKeysToLowerCase(
  45. IDictionary<ILanguage, IDictionary<string, string>> dictionaries)
  46. {
  47. return dictionaries.ToDictionary(
  48. x => x.Key, v => CloneWithComparer(v.Value, StringComparer.OrdinalIgnoreCase));
  49. }
  50.  
  51. static IDictionary<K, V> CloneWithComparer<K,V>(IDictionary<K, V> original, IEqualityComparer<K> comparer)
  52. {
  53. return original.ToDictionary(x => x.Key, x => x.Value, comparer);
  54. }
Add Comment
Please, Sign In to add comment