Реализация IEnumerable<> - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет, не понимаю как реализовать интерфейс IEnumerable<KeyValuePair<K, V>> в данном коде:
Листинг программы
  1. public class MultiDictionary<K, V> : IMultiDictionary<K, V>, IEnumerable<KeyValuePair<K, V>>
  2. {
  3. Dictionary<K, LinkedList<V>> internalDictionary = new Dictionary<K, LinkedList<V>>();
  4. public int Count
  5. {
  6. get
  7. {
  8. throw new NotImplementedException();
  9. }
  10. }
  11. public ICollection<K> Keys
  12. {
  13. get
  14. {
  15. throw new NotImplementedException();
  16. }
  17. }
  18. public ICollection<V> Values
  19. {
  20. get
  21. {
  22. throw new NotImplementedException();
  23. }
  24. }
  25. public void Add(K key, V value)
  26. {
  27. throw new NotImplementedException();
  28. }
  29. public void Clear()
  30. {
  31. throw new NotImplementedException();
  32. }
  33. public bool Contains(K key, V value)
  34. {
  35. throw new NotImplementedException();
  36. }
  37. public bool ContainsKey(K key)
  38. {
  39. throw new NotImplementedException();
  40. }
  41.  
  42. public bool Remove(K key)
  43. {
  44. throw new NotImplementedException();
  45. }
  46. public bool Remove(K key, V value)
  47. {
  48. throw new NotImplementedException();
  49. }
  50. public IEnumerator<KeyValuePair<K, V>> GetEnumerator()
  51. {
  52. return internalDictionary.Values.GetEnumerator(); // Соответственно кидает ошибку, текст ниже
  53. }
  54. /*
  55. Error CS0029 Cannot implicitly convert type 'System.Collections.Generic.Dictionary<K, System.Collections.Generic.LinkedList<V>>.ValueCollection.Enumerator' to 'System.Collections.Generic.IEnumerator<System.Collections.Generic.KeyValuePair<K, V>>'
  56. */
  57. IEnumerator IEnumerable.GetEnumerator()
  58. {
  59. return GetEnumerator();
  60. }
  61. }
Объясните подробно если можно =)

Решение задачи: «Реализация IEnumerable<>»

textual
Листинг программы
  1. public IEnumerator<KeyValuePair<K, V>> GetEnumerator()
  2. {
  3.     foreach (var kvp in internalDictionary)
  4.         foreach (var value in kvp.Value)
  5.             yield return new KeyValuePair<K, V>(kvp.Key, value);
  6. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы