none
generic метод расширения RRS feed

  • Вопрос

  • Добрый день, воспроизвел пример из книги "Справочник по LINQ" Ниже приведенный код, реализация не безызвестного метода Where

            public static IEnumerable<TSource> MyWhere<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate)
            {
                foreach (TSource element in source)
                {
                    if (predicate(element))
                    {
                        yield return element;
                    }
                }
            }

    Так пытаюсь использовать:

                IEnumerable<string> list = new List<string>()
                {
                    "Jon", "Mike", "Tom"
                };
                var result = list.MyWhere(n => n.Contains("o"));

    Не могу понять, почему код не работает, причем странным образом...все компилируется и никаких ошибок во время выполнения, просто

    метод MyWhere "игнорируется" в режиме отладки обнаружил, что компилятор даже не входит в этот метод. Any ideas?




    2 января 2013 г. 9:43

Ответы

  • Ваш код отработает при попытке получить результат. Попробуйте вывести result в консоль. Или сделать result.ToList().
    • Помечено в качестве ответа Sumv 2 января 2013 г. 14:51
    2 января 2013 г. 10:16
    Модератор