Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как правильно пользоваться IEnumerable<>?

6.6K
25 февраля 2008 года
Ordos
105 / / 02.11.2007
В этом интерфейсе над реализовать две функции:
public IEnumerator<какой-то тип> GetEnumerator();
IEnumerator IEnumerable.GetEnumerator();

Как правильно испольовать этот интерфейс?
713
25 февраля 2008 года
Ap0k
360 / / 13.03.2006
Примерно так :)
 
Код:
[COLOR=teal]IEnumarable[/COLOR]<[COLOR=#008080]какой_то_тип[COLOR=black]>[/COLOR] [/COLOR]iEnumerableInst = [COLOR=blue]new[/COLOR] [COLOR=#008080]какой_то_тип[/COLOR][COLOR=black][10];[/COLOR]
[COLOR=green]//тут код будет выстреливать NullReferenceException, если [/COLOR]
[COLOR=green]//какой_то_тип - ссылочный, поэтому нужно бы еще заполнить каждый элемент массива[/COLOR]
[COLOR=blue]foreach[/COLOR] ([COLOR=teal]какой_то_тип[/COLOR] var [COLOR=blue]in[/COLOR] iEnumerableInst)
{
      [COLOR=teal]Console[/COLOR].WriteLine(var.ToString());
}
5
26 февраля 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Ordos
В этом интерфейсе над реализовать две функции:
public IEnumerator<какой-то тип> GetEnumerator();
IEnumerator IEnumerable.GetEnumerator();

Как правильно испольовать этот интерфейс?

Как вариант, можно положиться на компилятор, и создать генератор.
Вот идея:

Код:
public IEnumerable<int> Integer_Generator() {
    for (int i = 0; i < 10; ++i) {
        yield return i;
    }
    yield return 10;
    yield return 11;
}

// используем как обычную функцию    
foreach (int i in Integer_Generator()) {
    Console.WriteLine(i.ToString());
}


Также существует конструкция yield break, она позволяет выполнить выход из генератора.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог