Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

циклы for и foreach C#

Leva Derbishev Ученик (131), на голосовании 9 лет назад
Чем отличаются эти два цикла можно кратко, но понятно сказать? цикл фор мне более знаком, а чем он отличается и тд, расскажите, пожалуйста
Голосование за лучший ответ
Даниил Мыслитель (8679) 9 лет назад
Foreach работает с перечислимыми типами и контейнерами реализующими интерфейс IEnumerable
Leva DerbishevУченик (131) 9 лет назад
не понимаю: ( можно для чайников?
Даниил Мыслитель (8679) List li_so; /// набиваешь список ссылками на объекты SomeObj // а потом foreach(SomeObj so in li_so) { // операции с элементом списка so }
user51942 Оракул (50720) 9 лет назад
foreach используется для перебора всех элементов в каком-то массиве (или какой-нибудь другой массивоподобной структуре) по порядку.
Например, есть массив A{1,2,3,4,5}.
Можно перебрать элементы так, обращаясь к ним по номеру (i):
for (int i=0; i<A.Length; i++)
А можно так:
foreach (int k in A)
Во втором случае меньше писать и сама конструкция более понятна, зато неизвестен номер элемента (а как же, не факт, что он вообще есть, если брать другие структуры, навроде множеств) и не факт, что элементы мы получим в нужном нам порядке.
Голова РоботаПросветленный (36364) 9 лет назад
Разве IEnumerable не гарантирует, что данные будут отсортированы как в коллекции? И далеко не любую коллекцию можно прочитать через for.
user51942 Оракул (50720) Вот именно, что я подчёркиваю: foreach заточен под коллекции и им подобные и не использует индекс. Это может быть как хорошо, так и плохо.
А Мудрец (14815) 9 лет назад
Могу только добавить, что foreach позволяет только читать элементы коллекции, но изменить их нельзя. В цикле for их можно изменять.
Голова РоботаПросветленный (36364) 9 лет назад
мне кажется, в foreach нельзя изменять саму коллекцию. Что мешает изменять данные элемента?
А Мудрец (14815) Данные элемента изменять можно. Сам элемент нельзя менять на другой. Наверное неправильно выразился.
Похожие вопросы