@Kagtaviy

Как в c# вывести слово с массива в столбик(вертикально)?

Здравствуйте, есть массив например типа string в котором хранятся слова.
Как я могу выводить слова по одной букве.
Делаю так
string[] words = nameSec.Split(' ');

foreach (string wordd in words)
            {
                for (int j = 0; j < wordd.Length; j++)
                {
                    Console.WriteLine(wordd.Substring(j, j+2));
                }
                Console.WriteLine(" ");
            }

Не работает, подскажите как правильно это сделать.
  • Вопрос задан
  • 3928 просмотров
Решения вопроса 1
string[] words = { "Привет", "мир"};
foreach(var word in words)
{
    foreach(var letter in word)
        Console.WriteLine(letter);
    Console.WriteLine();
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@John_Nash
coder
string a = "Hello";
foreach (var b in a.ToCharArray())
{
Console.WriteLine(b.ToString());
}
Ответ написан
Комментировать
SuccessVM
@SuccessVM
Программирование - творчество
При использовании .NET Framework, начиная с версии 3.5 и выше, можно использовать LINQ

Вариант 1: преобразовать результат выборки в List у которого можно вызвать метод ForEach, основной минус в перерасходе доп. ресурсов.

string[] words = { "Hello", "World!" };

(from word in words from letter in word select letter)
                .ToList().ForEach(Console.WriteLine);


Вариант 2: не создаём List и не расходуем лишние ресурсы, а выполняем запрос сразу в цикле foreach.

string[] words = { "Hello", "World!" };

foreach(var letter in (from word in words
                       from letter in word
                       select letter))
        Console.WriteLine(letter);


Для наглядности оба варианта содержат несколько операторов from, компилятор при этом вызывает SelectMany, который выполняет вложенные циклы.

Вариант от DarkByte2015 с применением SelectMany, возможно, кому-то покажется более элегантным.
Ответ написан
@DarkByte2015
string[] words = { "word1", "word2" };

foreach (var letter in words.SelectMany(x => x))
	Console.WriteLine(letter);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы