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

Как сделать перебор элементов строки с помощью оператора foreach?

03.11.2018, 11:53. Показов 7639. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть такой вариант перебора элемента для списка:
C#
1
2
int[] numbers = { 1, 2, 3 };
numbers.ToList().ForEach(n => Console.WriteLine(n));
как сделать то же самое , но для строки (посимвольный вывод)?
что то типо того

C#
1
2
string str = "строка";
str... (n => Console.WriteLine(n));
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.11.2018, 11:53
Ответы с готовыми решениями:

Как вывести Jagged Array с помощью оператора foreach
Будьте добры, подскажите, как вывести Jagged Array с помощью оператора foreach (причем, чтобы выводил в подобающем виде). Заранее спасибо.

Как сделать чтобы foreach выполнял перебор каждого элемента в отдельном потоке?
Вот допустим есть такой код.Как сделать чтобы foreach выполнял перебор каждого элемента в отдельном потоке?Если будет 100 или больше...

Перебор элементов xml через foreach
Есть документ xml: <?xml version="1.0" encoding="utf-8"?> <Users> <User ID="5047036703"> <Pass>615668</Pass> ...

19
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138
03.11.2018, 12:06
C#
1
2
string str = "строка";
str.ToList<char>().ForEach(n => Console.WriteLine(n));
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 12:16  [ТС]
что то не выходит
Миниатюры
Как сделать перебор элементов строки  с помощью оператора foreach?  
0
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138
03.11.2018, 12:23
Конечно не выходит...
Что значит n => n?
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 12:26  [ТС]
Кажется я изначально неточно задал вопрос...
Поставлю вопрос так:
допустим мне нужно именно ЭТОЙ операцией (ForEach) произвести посимвольно прибавление знака "-" :

C#
1
2
string str = "строка";
str.ToList<char>().ForEach(n => n  + "-");
на выходе получить: "с-т-р-о-к-а-"
0
Эксперт .NET
 Аватар для Usaga
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,385
03.11.2018, 12:41
rar, вот именно ForEach и лямбда?

Добавлено через 28 секунд
Просто перебрать посимвольно строку никак нельзя?
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 12:45  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
вот именно ForEach и лямбда?
Ага))
Это делается в запросе LINQ так что надо в одну строку

Вот нашел пока такое решение (используя .ToList<char>() - спасибо Терминатору ):
C#
1
"string".ToList<char>().Select(n => n+ "-").Aggregate((a, b) => a+b);
Есть лучше?
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.11.2018, 12:46
Цитата Сообщение от rar Посмотреть сообщение
мне нужно именно ЭТОЙ операцией (ForEach) произвести посимвольно прибавление знака "-" :
А с чем связано такое условие?
Можно же намного проще:
C#
1
2
string str = "строка";
string str2 = string.Join("-", str.AsEnumerable());
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 12:49
Цитата Сообщение от rar Посмотреть сообщение
на выходе получить: "с-т-р-о-к-а-"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
 
namespace Question2344838
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "строка";
            string str2 = string.Join("-", (IEnumerable<char>)str) + "-";
            Console.WriteLine(str2);
            Console.ReadKey();
        }
    }
}
0
5 / 4 / 1
Регистрация: 03.07.2017
Сообщений: 138
03.11.2018, 12:50
/del
Выше есть варианты лучше
0
Эксперт .NET
 Аватар для Usaga
14301 / 9386 / 1353
Регистрация: 21.01.2016
Сообщений: 35,385
03.11.2018, 12:52
rar, т.е. задание заключается в том, чтобы сделать максимально неэффективным и запутанным образом?
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 12:56  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
string str = "строка";
string str2 = string.Join("-", str.AsEnumerable());
Отличное решение, но только к последнему символу не прибавляется "-"

Добавлено через 2 минуты
Цитата Сообщение от Usaga Посмотреть сообщение
задание заключается в том, чтобы сделать максимально неэффективным и запутанным образом?
Отнюдь. сделать нужно проще и в одну строку.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.11.2018, 12:57
Цитата Сообщение от rar Посмотреть сообщение
к последнему символу не прибавляется "-"
Ну так прибавьте, делов-то:
C#
1
string str2 = string.Join("-", str.AsEnumerable()) + "-";
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 13:22  [ТС]
Да, можно прибавить.
Но , например, если выполняю нижнее подчеркивание, то не выйдет

C#
1
String.Join("\u0332", "string".AsEnumerable()) + "\u0332" ...
>>>
string

Хотя, это возможно, уже другая задача . С поставленной задачей ответ. уже был.


Добавлено через 3 минуты
Основной смысл моего вопроса - пробежаться посимвольно по элементам строки и применить к ним какое действие и все это в одну строку

Добавлено через 44 секунды
Основной смысл моего вопроса - пробежаться посимвольно по элементам строки и применить к ним какое действие и все это в одну строку
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 13:25
Цитата Сообщение от rar Посмотреть сообщение
если выполняю нижнее подчеркивание,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Text;
 
namespace Question2344838
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            string str = "строка";
            string str2 = string.Join("\u0332", (IEnumerable<char>)str) + "\u0332";
            Console.WriteLine(str2);
            Console.ReadKey();
        }
    }
}
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.11.2018, 13:32
Цитата Сообщение от rar Посмотреть сообщение
например, если выполняю нижнее подчеркивание, то не выйдет
Выйдет, просто вы с последним символом в строке не уагадали: нижнее подчеркивание на g не очень выглядит.
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
03.11.2018, 13:38
C Aggregate() тоже красивый вариант
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Linq;
using System.Text;
 
namespace Question2344838
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            string str = "строка";
            string str2 = str.Aggregate("", (a, b) => string.Concat(a, b, '\u0332'));
            Console.WriteLine(str2);
            Console.ReadKey();
        }
    }
}
0
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 13:47  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Выйдет, просто вы с последним символом в строке не уагадали: нижнее подчеркивание на g не очень выглядит.
Увы . берем "strin" результат будет "strin" , что логично , так как у нас JOIN - это сложение между символами
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
03.11.2018, 13:51
Лучший ответ Сообщение было отмечено rar как решение

Решение

rar, что не так на скриншоте ниже?
Миниатюры
Как сделать перебор элементов строки  с помощью оператора foreach?  
1
 Аватар для rar
2 / 2 / 0
Регистрация: 04.02.2016
Сообщений: 458
03.11.2018, 13:58  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
rar, что не так на скриншоте ниже?
Со скрином все в порядке)
Моя невнимательность : забыл у себя добавить в конце + "\u0332";
Спасибо. Все работает
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.11.2018, 13:58
Помогаю со студенческими работами здесь

С использованием оператора foreach вычислить произведение элементов массива
Здравствуйте! Подскажите как решить Определить одномерный массив А(10), с использованием оператора foreach вычислить произведение...

Как реализовать перебор массива с foreach?
Добрый день. Только начинаю изучать c#. Стоит задача - создать масив из цифр от 1 до 100 при помощи перебора, а после - сделать цикл,...

Как сделать перебор элементов BST от меньшего к большему и наоборот yield?
Как сделать перебор элементов BST от меньшего к большему и наоборот yield'ами? MainProgram.cs: using System; namespace...

Перебор элементов в массиве в foreach
Задача простая: Найти в csv-файле массив, содержащий строку 01 и записать ее в базу - это получилось. Теперь нужно дальше пройтись по...

Асинхронный перебор элементов массива (foreach)
Здравствуйте. Изучаю Ноду, для лучшего понимания event-loop'а решил написать асинхронный вариант forEach'а. Вот, что получилось: ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru