#c# #arrays
#c# #массивы
Вопрос:
Я новичок в c #, и мне трудно понять, как заполнить массив из пользовательского ввода. У меня есть массив из 5 объектов заданий
static Job[] jobArray = new Job[5];
Пользователь будет вводить описание для каждой работы, время на выполнение каждой работы и оплату за каждую работу. Мне нужно поместить эти введенные значения в массив.
Любая помощь будет оценена, спасибо.
Комментарии:
1. Ваш вопрос, вероятно, отклоняется, потому что это такой вопрос для начинающих. Иногда это вызывает у людей инстинктивную ненависть. Например, «Как он может этого не знать ?!». К вашему сведению. Ваш вопрос мне кажется правильным. Проблема четко определена. В противном случае, добро пожаловать на сайт.
Ответ №1:
В основном, что вам нужно иметь в виду, так это то, что строка выше, в которой вы инициализируете массив, создает не объекты внутри него, а только массив.
Для каждой позиции массива вам необходимо запросить информацию у пользователя и сохранить ее в соответствующем свойстве. Затем вы присваиваете этот новый объект массиву.
Этот пример кода делает это для Description
, Hours
и Pay
свойства Job
Job[] jobArray = new Job[5];
for (int i = 0; i < jobArray.Length; i )
{
Job job = new Job();
Console.WriteLine("Job " i);
Console.WriteLine("Enter description:");
job.Desciption = Console.ReadLine();
Console.WriteLine("Enter hours:");
job.Hours = Console.ReadLine();
Console.WriteLine("Enter pay:");
job.Pay = Console.ReadLine();
jobArray[i] = job;
}
Комментарии:
1. спасибо, для других полей (часы, оплата) я бы использовал 2 других массива?
2. @John — см. Обновление. Вам не нужны другие массивы, а просто для установки свойств элементов, которые вы уже создаете
Ответ №2:
Создайте функцию для чтения задания:
static Job ReadJob() {
return new Job() {
Name = Console.ReadLine(),
Description = Console.ReadLine(),
//...
};
}
А затем заполнить массив:
for (int i = 0; i < jobs.Length; i )
jobs[i] = ReadJob();
Возможны бесконечные варианты этого.
Комментарии:
1. Это правильное решение с хорошим уровнем инкапсуляции. Странно, что кто-то это отрицает.