@Ledington

Как вернуть коллекцию для IEnumerable метода расширения?

У меня есть метод расширения:

public static ExtensionMethod(this List<int> list, int percentline)
        {
            try
            {
                if (list.Count <= 100 && list.Count >= 1)
                {
                    IEnumerable<int> count = list.OrderByDescending(sort => sort).Take((int)(list.Count() * percentline / 100.0f));
                    Console.WriteLine("Перечень элементов: \n" + string.Join(", ", count));
                }
                else
                {
                    throw new ArgumentException();
                }
            }
            catch (ArgumentException)
            {
                Console.Write("ОШИБКА!!!\n");
            }
            return ?????
        }

Мне нужно вернуть коллекцию на которую он был вызван? Как мне это сделать? Что то я немного запутался.
  • Вопрос задан
  • 131 просмотр
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
public static IEnumerable<int> ExtensionMethod(this IEnumerable<int> list, int percentline)
        {
            try
            {
                if (list.Count() <= 100 && list.Count() >= 1)
                {
                    IEnumerable<int> count = list.OrderByDescending(sort => sort).Take((int)(list.Count() * percentline / 100.0f));
                    Console.WriteLine("Перечень элементов: \n" + string.Join(", ", count));
                }
                else
                {
                    throw new ArgumentException();
                }
            }
            catch (ArgumentException)
            {
                Console.Write("ОШИБКА!!!\n");
            }
            return list;
        }


ну и соотв далее

var list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            list
                .ExtensionMethod(10)
                .ExtensionMethod(25);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы