Интерфейсы и делегаты. Каков функционал IEnumerable в приведенном коде - C#

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

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

пробую так, но не очень то получается и прошу объяснить при чем тут IEnumerable
Листинг программы
  1. namespace ConsoleApplication
  2. {
  3. class Program
  4. {
  5. static void Main(string[] args)
  6. {
  7. List<String> list = new List<String>();
  8. list.Add("2");
  9. list.Add("3");
  10. Select<List<String>>(/*что передать первым аргументом?*/, ,delegate(List<string> item) {
  11. for (int i = 0; i<item.Count;i++) {//производим действия над коллекцией }
  12. return item;//возвращаем новую коллекцию
  13. }
  14.  
  15. }
  16. // public T d<T>(T item) { return item; }
  17. public static IEnumerable<T> Select<T>(this IEnumerable<T> collection, MyFunc<T> selector) {
  18. //тут надо вызвать selector(collection)?
  19. };
  20. public delegate T MyFunc<T>(T item);
  21. }
  22. }

Решение задачи: «Интерфейсы и делегаты. Каков функционал IEnumerable в приведенном коде»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication37
  7. {
  8.     static class Program
  9.     {
  10.         public delegate T MyFunc<T>(T item)where T:struct;
  11.  
  12.         static void Main(string[] args)
  13.         {
  14.             //Экземпляр делегата с указанием цели
  15.             MyFunc<int> myFunc = new MyFunc<int>(Multi);
  16.  
  17.             //Коллекция, над которой совершается преобразование
  18.             int[] myArr = { 1, 4, 7, 2, 9, 5, 2, 0, 7, 2, 7 };
  19.  
  20.             //Преобразованная коллекция
  21.             int[] newArr = (myArr.MySelect(myFunc)).ToArray();
  22.  
  23.             //Вывод полученной коллекции
  24.             foreach (int i in newArr)
  25.                 Console.WriteLine("Item: {0}", i);
  26.  
  27.             Console.ReadLine();
  28.         }
  29.         //Метод-расширение
  30.         public static IEnumerable<T> MySelect<T>(this IEnumerable<T> collection, MyFunc<T> selector)where T:struct
  31.         {
  32.             IEnumerable<T> coll = from n in collection select (selector(n));
  33.             return coll;
  34.         }
  35.         //Метод для делегата
  36.         static int Multi(int x)
  37.         {
  38.             return x * 10;
  39.         }
  40.     }
  41. }

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


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

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

15   голосов , оценка 4 из 5

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

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

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