Проблема с массивом и обработкой данных
Задача: нужно через консоль задать количество работников и далее указать их зарплату. Проблемы начинаются с указания массива, и либо его неправильная инициализация, либо я уже не знаю что, про массивы читал - пробовал - не получилось, теперь конкретно к коду:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AverageSalary
{
class Sravnenie
{
static void Main(string[] args)
{
int[] SalaryList;
Console.WriteLine("Введите колличество сотрудников: ");
int NumberOfWorkers = Convert.ToInt32(Console.ReadLine());
SalaryList = new int[NumberOfWorkers];
for (int i = 0; i < NumberOfWorkers; i++)
{
Console.WriteLine("Введлите зарплату сотрудника {0.d} : ", i);
int SalaryOfEachWorker = Convert.ToInt32(Console.ReadLine());
SalaryList[i] = SalaryOfEachWorker;
}
Console.WriteLine(SalaryList);
}
}
}
Проблема заключается в том, что консоль выдает System.Int32[].
Ответы (1 шт):
В Console.WriteLine(SalaryList) неявно вызывается метод ToString у массива, который по умолчанию просто выводит полное имя класса – в вашем случае это System.Int32[].
Если вы хотите вывести массив поэлементно, нужно написать немного дополнительного кода. Проще всего воспользоваться встроенным методом String.Join: Console.WriteLine(string.Join(',', SalaryList)).
Весь ваш код метода Main тогда будет выглядеть так (привел заодно имена всех переменных в соответствии с соглашениями о написании кода на C# и исправил пару недочетов):
int[] salaries;
Console.WriteLine("Введите количество сотрудников: ");
int workersCount = Convert.ToInt32(Console.ReadLine());
salaries = new int[workersCount];
for (int i = 0; i < workersCount; i++)
{
Console.WriteLine($"Введите зарплату сотрудника {i + 1}: ");
int salaryOfWorker = Convert.ToInt32(Console.ReadLine());
salaries[i] = salaryOfWorker;
}
Console.WriteLine(string.Join(',', salaries));