Уроки C# - цикл foreach - Урок 18

Поделиться
HTML-код
  • Опубликовано: 3 окт 2024
  • Донаты и на кофе ➜ t.me/win10twea...
    Эксклюзив для спонсоров ➜ / xpuct
    Если недоступна спонсорка ➜
    Основной канал:
    / jailbreakvideo
    #цикл #foreach #СиШарп

Комментарии • 73

  • @zaylen8389
    @zaylen8389 5 лет назад +38

    Чтобы не заходить в дизайнер и не расставлять по порядку элементы в ручную, есть окно "Структура документа" Ctrl+Alt+T (Вид-Другие окна-Структура документа). Там можно как переименовывать элементы, переводить их на передний/задний план, видеть, что находится на определённой панели, так и расставлять их по нужному порядку.

    • @XpucT
      @XpucT  5 лет назад +7

      Это просто шикарно 👏
      Закрепил коммент 👍

  • @malygos1898
    @malygos1898 4 года назад +7

    Вот это уроки! Вот это реальное обучение.

  • @SCEEF
    @SCEEF 5 лет назад +23

    Оу май, используя aray,foreach и char - можно делать диалоги в играх)

  • @ВладимирВладимирович-ю6х

    Спасибо, благодаря тебе карабкаюсь вверх по лестнице программирования, спотыкаюсь, потею, ругаюсь, посылаю всё к чёрту но карабкаюсь.

  • @TheCrossfor
    @TheCrossfor 5 лет назад +4

    Сначала скептически отнёсся к Вашим урокам, теперь начинает нравится. желаю единственного - чтобы жизнь заставила Вас столкнуться с тем, что опускаете, (как, например, многомерные массивы), соответственно изучить и начать использовать и возможно на канале появятся уроки по пропущенным темам для тех, кто в будущем придёт сюда.

    • @XpucT
      @XpucT  5 лет назад +3

      Вы не поверите, в 19-ом видео (пока в обработке) Я как раз говорю о том, что break и continue нужно знать, хотя не могу придумать хороший пример. Также сегодня один человек пожелал Мне того же самого =) Чтобы async await не просто "паузить", а паузить с экономным отношением к памяти. Надеюсь, что доберёмся до сложных примеров 👍

  • @ВладимирКварацхелия-о4г

    Очень доступно объясняете! Спасибо! Пошел применять)

  • @youchinafriend
    @youchinafriend 2 года назад +2

    Божечки, какой же прекрасный цикл, я себе голову ломал с вайлом и циклом фор, в итоге foreach мне идеально подходит, спасибо большое, лайк👍🏻

  • @nouchance
    @nouchance 2 года назад +1

    Спасибо большое

  • @savannah633
    @savannah633 4 года назад +1

    Спасибо большое! На 0:42 уже поняла что это и зачем это. Вы классно объясняете, связывая с перевод с английского. Удачи в развитии канала и самосовершенствовании. Спасибо!

  • @fliegeflow3613
    @fliegeflow3613 3 года назад +1

    Очень круто, все очень понятно особенно на примерах где и как можно использовать, никто не покажет как это делать кроме как XpucT )

  • @sergmaster5089
    @sergmaster5089 3 года назад +3

    Христ, я тоже вставлю своих 5 копеек... Достаточно написать for, foreach или while, а затем нажать двойной Tab и будет счастье в виде заполненного кода (почти)... Также это действует для заполнения свойств (propfull + двойной Tab), для автоматических свойств (prop + двойной Tab), для конструктора (ctor + двойной Tab)... может есть еще, но пока не встречал других

  • @kingartur1986
    @kingartur1986 3 года назад +1

    спасибо

  • @user-wu-tang
    @user-wu-tang Год назад +1

    Привет ув.Хачатур
    Да, крутой цикл foreach ()

  • @СергейВысторопов
    @СергейВысторопов 3 года назад +2

    Уроки класс! Но плохо видно экран. Хотелось бы чтобы изображение кода было крупнее или ближе.

  • @fred20659
    @fred20659 4 года назад +1

    Спасибо!

  • @samson9438
    @samson9438 5 лет назад +1

    Христ очень хотелось бы увидеть урок про Сериализация-десериализация, лайк поставил)

  • @neuro_picture
    @neuro_picture 3 года назад +1

    Спасибо!

  • @1ng0verin75
    @1ng0verin75 5 лет назад +3

    Можно копировать элементы проще, shift+лкм на элемент (выделить его) и зажимая ctrl перетаскивать в новое место (так он создаёт новый элемент)

  • @blackdream9372
    @blackdream9372 4 года назад +2

    Любая строка может быть массивом например
    string line = "XpucT снимает крутые видео";
    foreach (char item in line)
    {
    Console.WriteLine(item);
    }

    • @omoloni
      @omoloni 4 года назад

      а зачем в столбик

  • @redtayron6390
    @redtayron6390 5 лет назад +5

    Хачатур расскажи как сохранять действия которые сделал в программе пожалуйста))

    • @XpucT
      @XpucT  5 лет назад +5

      Очень скоро до этого дойдём 👍

  • @Silver_men_rev
    @Silver_men_rev 4 года назад +2

    А есть в вашем каталоге что то про Bitmap? как загрузить картинку в двумерный массив и как на ней найти фрагмент этой картинки, к примеру загрузить картинку как двумерный массив в буфер и на ней найти фрагмент вырезанный из этой же картинки и произвести по фрагменту действие, к примеру клик)))

    • @XpucT
      @XpucT  4 года назад

      Такого видео нет O_O

    • @Silver_men_rev
      @Silver_men_rev 4 года назад +1

      @@XpucT Эх, думал есть что то такое))) я как раз бота пишу))) поиск по картинке хотел замутить, что бы имитировать не тыки мышкой по координатам а поиск по картинке)))

  • @Silver_men_rev
    @Silver_men_rev 4 года назад +1

    foreach используется как в Python только в Python for(a in b){} идет перебор из оной переменной в другую.

  • @romay3477
    @romay3477 Год назад +1

    Привет, Хачатур. У меня есть вопрос: можно ли как-то ограничить работу цикла foreach? Допустим если мне нужно из листа, массива размером 40 данных, достать 20 данных, а потом другие 20?

    • @XpucT
      @XpucT  Год назад

      Привет 🖐
      Всё можно контролировать с помощью if внутри foreach.
      Всё зависит от ситуации.

  • @WaRez86rus
    @WaRez86rus 5 лет назад +2

    Здравствуйте! Хотел бы заранее узнать, будут ли уроки по WPF? А также MVVM, его реализации и фишках? (Messenger и прочее).Возможно другие паттерны

    • @XpucT
      @XpucT  5 лет назад

      Добрый день.
      Если будут по WPF, то позже. Он слишком сырой для серьёзных проектов. Много времени отнимет на реализацию идей.

    • @WaRez86rus
      @WaRez86rus 5 лет назад

      @@XpucT разве инструментарий WinForms может дать такие же возможности, как WPF(UWP)? Те же триггеры

  • @povel4531
    @povel4531 2 года назад +1

    Ну все побежал подписывать контроллы на метод forechем. А кроме panel можно как-нибудь получить коллекцию нужных контроллов?

    • @XpucT
      @XpucT  2 года назад +1

      LINQ, но это через 22 урока после этого. Пока не спеши и иди последовательно иначе будет каша, поверь ;)

    • @povel4531
      @povel4531 2 года назад +1

      @@XpucT Учту, спасибо)

  • @roman044
    @roman044 3 года назад +1

    label1.BackColor = Color.Aqua;
    label1.Location = new Point(150, 160); . Правильно ли я понял , что для того , чтобы сдвинуть лейб нужно прописать экземпляр класса поинт с заданными координатами ? А чтобы изменить цвет лейбла нужно просто написать класс Color и вызвать метод с нужным цветом ?

    • @XpucT
      @XpucT  3 года назад

      Нет-нет, не нужно создавать экземпляры, если контрол (элемент управления) уже существует.
      Достаточно просто:
      label1.Location = new Point(0, 0);
      и т.д.

    • @roman044
      @roman044 3 года назад +1

      @@XpucT всё , понял

  • @Zaxeenor
    @Zaxeenor 4 года назад +1

    В натуре, Ставим лайм)

  • @Мибус
    @Мибус 2 года назад +1

    А возможно ли при использовании foreach исключить какой-либо элемент из заданного набора? Например, используется набор кнопок Controls.OfType, и нужно что бы, какую-то кнопку на форме не использовал. Ну или чтоб начинал со второго элемента или заканчивал предпоследним? Или только уже внутри цикла делать проверки,типа if (but!=Button1) {делает что-то с набором кнопок}?

    • @XpucT
      @XpucT  2 года назад

      Правильный ответ на данном этапе обучения - да, просто добавить if.
      Но на 20-м уроке научимся делать ещё круче с помощью LINQ.
      Но упаси Тебя, Андрей, бежать впереди паровоза и прыгать по видео, поверь, нахлебаешься =)
      До 20 урока Ты должен дойти зная всё то, что знаешь в предыдущих 19-ти 💪

    • @Мибус
      @Мибус 2 года назад +1

      @@XpucT ну что ж, дойдём и до 20 урока =) Спасибо за уроки и за ответы в комментариях. Всё очень интересно и понятно. 👍

  • @putinmunn9414
    @putinmunn9414 4 года назад +1

    Привет, недавно начал смотреть твои видео, очень нравится.
    Я делаю проект для работы.
    Вопрос такой, у меня очень много checkbox'ов и я хочу сделать так, чтобы те, которые я выбирал, записывали текст в файл, создавая его на рабочем столе.
    Вот мой код, но он записывает текст только того чебокса, который был выбран последним, не могу понять в чем проблема
    string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
    foreach (CheckBox ch in Controls.OfType())
    {
    if (ch.Checked)
    {
    File.WriteAllText(path + "\\Список Работ.txt", ch.Text);
    }
    }

  • @Magic-oc1jk
    @Magic-oc1jk 4 года назад

    const int n = 100;
    int[] nums = new int[n];
    Random rand = new Random();
    foreach (int num in nums)
    {
    nums[num] = rand.Next(n);
    }
    Привет, Хачатур. Подскажи, пожалуйста, почему такой foreach не работает? (для всех числе в массиве задаёт одно и тоже число).
    А если прописать:
    for (int i = 0; i < nums.Length; i++)
    {
    nums[i] = rand.Next(n);
    }
    то всё работает как надо.

    • @XpucT
      @XpucT  4 года назад

      Привет 🖐
      Не понял вопроса, потому что и один и другой код рабочие.
      Мне кажется Ты ожидаешь просто что-то другое =))

  • @m00dystyle
    @m00dystyle Год назад +1

    foreach (var item in pas)
    Можно ли как-то заставить цикл воспринимать пароли?

    • @XpucT
      @XpucT  Год назад

      А почему нет?

    • @m00dystyle
      @m00dystyle Год назад

      @@XpucT визуал ругается говорит что такой цикл переменную не понимает

    • @XpucT
      @XpucT  Год назад

      @@m00dystyle значит pass не является списком или массивом.

  • @refasforza5877
    @refasforza5877 4 года назад +1

    привет Христ, что значит { get; set ;} ?
    часто вижу но не понимаю что это

    • @XpucT
      @XpucT  4 года назад

      Привет 🖐
      Вот пример:
      metanit.com/sharp/tutorial/3.4.php
      Однако Я лично либо использую тернарные операции, либо лямбду.
      Хороший пример сделать сам не могу, потому что не пользуюсь ┐('~`;)┌
      Хотя 1 раз использовал, когда нужно было передать что-то из одно формы в другую:
      Во второй форме: public string MyText { get; set; }
      В первой форме:
      Form2 f2 = new Form2(this)
      {
      MyText = text
      };
      Но лучше обмениваться через классы.... Мда, хорошего примера нет =)

    • @refasforza5877
      @refasforza5877 4 года назад +1

      @@XpucT спасибо)

  • @platonzvonkov1063
    @platonzvonkov1063 4 года назад

    А как вторым кликом по той же кнопке разчекать все чекбоксы?

    • @XpucT
      @XpucT  4 года назад +1

      if и else
      Сделать ориентир, например, label.
      После того, как все проставлены, то label1.Text = "Снять галочки", else label1.Text = "Поставить галочки"
      if label1.Text = "Поставить"... else ...

  • @relarek
    @relarek Год назад +1

    блин)) у меня такая тупенькая прога:
    char[] a = "Zdarova otec".ToCharArray();
    private void button1_Click(object sender, EventArgs e)
    {
    int i = 0;
    foreach (char c in a)
    {
    if (i < a.Length - 1)
    i++;
    a[i] = 'z';
    }
    label1.Text = a.ToString();
    }
    почему она выводит "System.Char[]" а не zzzzzzzzz?

    • @XpucT
      @XpucT  Год назад

      label1.Text = new string(a);

    • @relarek
      @relarek Год назад +1

      @@XpucT спасибо! я прочитал на метаните про new, но слабо понял, дойду в твоем курсе до него)

  • @davidkroods811
    @davidkroods811 5 лет назад

    Ну эт для совсем чайников. А куда делись IEnumerable, IEnumerator, yeald return, Reflection, yeald break, Pattern Iterator, и всё такое?

  • @xasthul2355
    @xasthul2355 5 лет назад

    А как сделать активными кнопочки сверху( поставить контрол по центру, например ) У меня они серые и даже при выделении контрола не становятся активными

    • @XpucT
      @XpucT  5 лет назад +2

      Правой кнопкой по контролу ➜ Переместить на передний план
      Выравнивание доступно, если просто нажмёте левой кнопкой по контролу ➜ вверху будет выравнивание.

  • @BobiBobObana
    @BobiBobObana 5 лет назад

    А как же добавить элемент в массив? И удалить элемент из массива?
    А как же выделить массив в куче. Или в C# этого нет?

    • @XpucT
      @XpucT  5 лет назад +1

      Для этого нужно дождаться List
      Вынуть или добавить проще в "список", чем в "массив".
      Об этом, опять же, позже.

  • @Славик-с5д
    @Славик-с5д 5 лет назад

    Пытался к полям в меню так обратиться ничего не срабатывает. foreach (var menu in menuStrip1.Controls.OfType())

    • @XpucT
      @XpucT  5 лет назад

      Точно нигде ничего не напутано?
      stackoverflow.com/questions/15380730/foreach-every-subitem-in-a-menustrip

  • @Chmakster
    @Chmakster 5 лет назад

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

  • @АбдулхакимМагомедов-ж6у

    Класс, всё вроде усвоил. Правда пример с checkBox-сами в panel не получилось сделать, вроде написал всё верно, сверил, сама Visual никаких ошибок не выдала, но при нажатии на кнопку ничего не происходит. Посмотрел на Debug, она заходит на foreach, смотрит на panel1.и т.д. но почему-то посмотрев, она просто пропускает его.

    • @XpucT
      @XpucT  5 лет назад +2

      Что-то не то делаешь =)

  • @ИгорьМинин-н3п
    @ИгорьМинин-н3п 5 лет назад +1

    Кто может по простому объяснить что такое this?

    • @XpucT
      @XpucT  5 лет назад +1

      Необязательное указание на контрол или форму.
      К примеру, если нужно поменять BackColor у label1 и у Form1.
      label1.BackColor = ... (для label)
      this.BackColor = ... (для формы)
      Таким образом увидим, что this подсвечивается так, что можно (нужно) стереть.
      Это такой же мусор, как указание private. Можешь писать и не писать, но он есть. this также.

    • @ИгорьМинин-н3п
      @ИгорьМинин-н3п 5 лет назад +1

      @@XpucT Огромное спасибо! Наконец понял)))

    • @omoloni
      @omoloni 4 года назад

      this. это означает что объект принадлежит к классу

    • @MacKorWoT
      @MacKorWoT 3 года назад +2

      @@XpucT Я бы не назвал это мусором) this нужен, чтобы обратиться к классу в котором мы сейчас находимся, например, чтобы решить проблему неоднозначности именования переменных. У тебя в классе есть поле data, и в конструкторе класса в параметрах тоже есть data, и чтобы передать ту самую дату в класс при создании экземпляра, нужно написать в теле конструктора this.data = data; Где this.data это обращение к полю класса, а data обращение к параметру конструктора. Иначе компилятор не поймет какую именно переменную data мы имели ввиду. Или еще можно использовать для передачи объекта текущего класса в метод или массив. Например, есть метод который в параметрах принимает объекты текущего класса, если нам надо изнутри передать экземпляр, можно написать SomeMethod(this), или если хотим передать в массив someList.Add(this). А еще можно использовать this для перегрузки конструктора, когда есть 2 и более конструкторов, которые частично принимают одинаковые параметры. Что-то вроде ctor(int a, int b), ctor(int a, int b, int c) : this(a,b), по аналогии как с ключевым словом base.