Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
10 / 10 / 2
Регистрация: 26.02.2011
Сообщений: 69

Есть ли принципиальные различия в for и foreach

01.03.2011, 14:55. Показов 8697. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно, сабж.

Если говорить о том, что foreach был создан специально для коллекций - то есть ли у него какие-то особенности реализации, которые позволяют проходить по всем элементам коллекции быстрее, нежели это делает цыкл for с созданием локальной переменной и проверкой на длинну коллекции?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.03.2011, 14:55
Ответы с готовыми решениями:

Принципиальные различия в JS между методом и функцией.
Ну давайте, объясните внятно принципиальные различия в JS между методом и функцией.

sata I vs sata II. принципиальные различия в несильной системе [нетбук]
был такой хард т.е sata2 если взять новый sata1? я конечно понимаю, что скорость уменьшится в 2 раза (sata1 150mb, sata2 300mb). но...

LookUp и Dictionary<T,List<V>>: есть ли принципиальные отличия?
Есть ли какие-то принципиальные отличия (время формирования, время доступа, память, возможности использования, и т.д.) в следующих...

9
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
01.03.2011, 15:02
Зависит от коллекции
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
02.03.2011, 12:39
VIPerZ, foreach делает это медленнее чем for, потому что создаётся итератор IEnumerate. Время на конструктор его тратится. Форич для удобства и вроде используется в LINQ, но не скажу точно насчёт последнего..
0
Шаровик затейник
 Аватар для Crudelis
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
02.03.2011, 13:07
принципиально различий нет, по коллекции можно пройтись как через for так и фурычем, кому как нравится, как писали выше различие только во времени выполнения.
0
25 / 25 / 5
Регистрация: 11.11.2009
Сообщений: 56
02.03.2011, 13:32
foreach не позволяет изменять значения элементов коллекции.
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
02.03.2011, 13:51
Цитата Сообщение от Crudelis Посмотреть сообщение
принципиально различий нет, по коллекции можно пройтись как через for так и фурычем
Вот тебе коллекция
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Collection : IEnumerable<int>
{
    public IEnumerator<int> GetEnumerator()
    {
        for (int i = 0; i < 10; i++)
        {
            yield return i;
        }
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        throw new NotImplementedException();
    }
}
C#
1
2
3
4
foreach (var item in new Collection())
{
    Console.WriteLine(item);
}
Пройдись фором.

Или по этой
C#
1
2
3
4
5
6
var d = new SortedDictionary<string, string>() { 
    { "1", "a" }, 
    { "3", "c" },  
    { "2", "b" },  
    { "4", "d" }, 
};
Выведи все KeyValyePait<,>
0
Шаровик затейник
 Аватар для Crudelis
696 / 445 / 78
Регистрация: 06.05.2010
Сообщений: 1,109
02.03.2011, 15:08
HIMen, я не писал что все коллекции можно прогнать через фор, но к примеру ArrayList можно, SortedList тоже можно
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
02.03.2011, 15:26
ну практически все коллекции имеют Count - количество элементов. А какой-нибудь Dictionary в большинстве случаев не требует прогонки по всем элементам.
0
 Аватар для HIMen
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
02.03.2011, 16:21
Цитата Сообщение от servitola Посмотреть сообщение
ну практически все коллекции имеют Count - количество элементов
Ну вот
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Collection : IEnumerable<int>
{
    public IEnumerator<int> GetEnumerator()
    {
        for (int i = 0; i < 10; i++)
        {
            yield return i;
        }
    }
    IEnumerator IEnumerable.GetEnumerator()
    {
        throw new NotImplementedException();
    }
    public int Count { get { return 10; } }
}
0
 Аватар для servitola
60 / 60 / 6
Регистрация: 07.09.2010
Сообщений: 259
02.03.2011, 16:53
HIMen, верно )) yield в тему ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.03.2011, 16:53
Помогаю со студенческими работами здесь

Есть ли различия ПЛАТФОРМА NT INTEL 86
Установили на ПК SQL SERVER 2012 (X86 - ПЛАТФОРМА NT INTEL 86 ЯДРО 64) Скажите, пожалуйста, правильно ли я понимаю, что был установлен 32...

TMemoryStream и TFileStream есть ли различия?
TMemoryStream и TFileStream вроде бы одинаковые по функциям типы(ну или компоненты, не знаю как в данном случае правильней) и работать они...

Есть ли различия между командами DEL и ERASE?
Ребят, не как не могу найти информацию о различии команды del и erase, помогите пожалуйста

Есть ли различия в Win98 и WinXP для программирования на BPascal7.0
Существуют ли различия в способах компиляции файлов в BPascal7.0 на Win98 и WinXP? При работе в WinXP программа работает нормально, все...

Сравнить две строки на различия не учитывая кол-во пробелов и такие различия в буквах как о-и, н-т, в-д.
Здравствуйте. Помогите пожалуйста дополнить программу. Суть программы - нужно сравнить две строки на различия не учитывая кол-во...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru