@Naims

Как преобразовать из char массива в string массив в си шарп?

Вот код:
string word = Console.ReadLine();
char[] charArr = word.ToCharArray();
string[] strArr = new string[charArr.Length];

надо сделать так, чтобы из charr массива стал string массив:
char[] charArr = { 'a', 'c', 'd'};, а станет: string[] stringArr = {"a", "c", "d"};
мне это надо так как в цикле, char переводится в цифры(кодировку)
  • Вопрос задан
  • 92 просмотра
Пригласить эксперта
Ответы на вопрос 3
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
  1. На бумажке словами расписать алгоритм
  2. Нарисовать схему алгоритма
  3. Сделать декомпозицию схемы до самых простых действий
  4. Найти в документации по языку методы реализации этих самых простых действий
  5. Написать код
  6. Продебажить и исправить ошибки
Ответ написан
Комментировать
Вообще это очень похоже на https://ru.wikipedia.org/wiki/Проблема_XY

Так что очень рекомендую посмотреть, из-за чего вообще возникает

мне это надо так как в цикле, char переводится в цифры(кодировку)


Впрочем вот решение

Уверен, что не хочешь исправить первопричину?

Точно уверен?

Точно-точно уверен?

Точно пре-точно?

Может всё-таки прочитаешь про https://ru.wikipedia.org/wiki/Проблема_XY?
Если точно прочитал

Просто в цикле вызывай char.ToString()
Полный код

var stringsArray = Console.ReadLine().Select(x=>x.ToString()).ToArray();








PS: увы, при открытии внешнего спойлера - открываются все вложенные
Ответ написан
Комментировать
NikFaraday
@NikFaraday
Student full-stack Developer
Что вот это вот такое?
string[] strArr = new string[charArr.Length];
Если вы уже пытаетесь с массива что-то собрать, то сначала изучите, как работают массивы. Операция [ ] это доступ по индексу. Вы пытаетесь достучаться к новой строке по индексу, или как?
Вторая проблема, что нет явного преобразования char -> string, т.е. вот такой код работать не будет:
string a = charArr[0];
Рабочие варианты:
string a = charArr[0].ToString();
string a = $"{charArr[0]}";
string a = string.Join(charArr[0]);

Короче говоря вам нужно сначала каждый элемент char[] пересобрать в string, а потом запихнуть это всё в string[]. Тут есть два варианта, что бы долго не играться - через простые циклы или через linq. 1й вариат:
string word = Console.ReadLine();
char[] charArr = word.ToCharArray();

string[] strArr = new string[charArr.Length];
for (int i = 0; i < charArr.Length; i++)
{
    strArr[i] = charArr[i].ToString(); // Или другой из методов
}


2й вариант:
string word = Console.ReadLine();
char[] charArr = word.ToCharArray();
string[] strArr = charArr.Select(c => c.ToString()).ToArray();


А вообще не уверен, что вы делаете именно то, что вам нужно. В плане, на начальных этапах такое бывает, что не понимаешь как задачу решить и начинаешь лепить что угодно)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы