Ошибка при конвертации char в Int

Должно выводится в консоль, то что вводится пользователем, но выдаёт System.Int32[] 123

Console.Write("Введите информационную комбинацию: ");
string alpha = Console.ReadLine();
int k = alpha.Length;
char[] strok = new char[k];
for (int i = 0; i < alpha.Length; i++)
{
    strok[i] = alpha[i];
}
int[] word = new int[k];
char[] temp = new char[256];
for (int i = 0; i < k; i++)
{
    temp[0] = alpha[i];
    word[i] = Convert.ToInt32(temp[0]);
}
Console.WriteLine("Информ.комбинация = " + word);

breakpoint


Ответы (3 шт):

Автор решения: YD359

Вы выводите целочисленный массив в консольный метод WriteLine, соответственно, выполняется метод ToString объекта типа System.Int32[], который по умолчанию возвращает название этого типа. Вы можете написать свой метод для вывода массива или просто выполнить WriteLine в цикле для каждого элемента.

→ Ссылка
Автор решения: Frehzy
var result = string.Join(", ", word);
Console.WriteLine($"*..Message..*{result});

Дело в том, что вы обращаетесь ко всему массиву. Вам нужно обращаться к конкретному элементу массива. Либо перебирайте их через foreach и выводите, либо сразу конвертируйте их в одну строку, как я написал в примере выше.

Вариант через foreach:

foreach (var word in words)
    Console.WriteLine(word);

Так же, обратите внимание на то, что переменная с массивом у вас называется "word". Это ведь коллекция, а значит "wordS"

UPD:

введите сюда описание изображения

Скопировал ваш код. Смотрим в то, что находится у нас в данном массиве. Давайте чуть подправим ваш код:

Console.Write("Введите информационную комбинацию: ");
var combs = Console.ReadLine();
var infCombs = combs.Remove(0, combs.IndexOf("1"));
Console.WriteLine($"Строка - {combs}. Её длина: {combs.Length}");
Console.WriteLine($"Информационные разряды - {infCombs}. Её длина - {infCombs.Length}");

UPD 2:

static string ConvertToString<T>(IEnumerable<T> array) =>
        string.Join(", ", array);

static int[] ConvertToIntArray(string line) =>
        line.Select(x => int.Parse(x.ToString())).ToArray();

UPD 3:

У вас есть какая-то строка. Допустим, у неё имя line. Нам нужно её конвертировать в массив.

int[] result = ConvertToIntArray(line);

Допустим, у вас есть массив (у него имя array) и его нужно "красиво" вывести в консоли:

string result = ConvertToString(array);
Console.WriteLine(array);
→ Ссылка
Автор решения: Pekor
static void Main() {
   Console.Write("Введите информационную комбинацию: ");
   string alpha = Console.ReadLine();
   int k = alpha.Length;
   char[] strok = new char[k];
   for (int i = 0; i < alpha.Length; i++)
   {
       strok[i] = alpha[i];
   }
   int[] word = new int[k];
   char[] temp = new char[256];
   for (int i = 0; i < k; i++)
   {
       temp[0] = alpha[i];
       word[i] = Convert.ToInt32(temp[0]);
   }
   Console.WriteLine("Информ.комбинация = ");
   foreach (var w in word)
       Console.Write((char)w);
}
→ Ссылка