Как я могу создать список C#, используя данные из моего класса - PullRequest
0 голосов
/ 21 апреля 2020

Я младший разработчик с очень небольшим опытом использования классов. Я создал класс, который выглядит следующим образом.

 public class Employee
{
    public string EmpID { get; set; }
    public string Hours { get; set; }
    public string Minutes { get; set; }
    public string Pages { get; set; }
    public string Certs { get; set; }
    public double HourlyRate { get; set; }


}

} Я использую этот код для заполнения класса нажатием кнопки asp

 Employee emp1 = new Employee();
        emp1.EmpID = ddlSpecialist.SelectedValue;
        emp1.Hours = txtDetailsHours.Text;
        emp1.Minutes = txtDetailsMinutes.Text;
        emp1.Pages = TxtDetailsPages.Text;
        emp1.Certs = txtDetailsCertified.Text;
        emp1.HourlyRate = HR;

Я предполагаю, что все работает, и я наполняю класс записями. Теперь я хочу создать список, чтобы можно было извлечь данные из класса. И вот теперь я застрял, создавая экземпляр списка, используя

List<Employee> Emp = new List<Employee>();
 foreach (var item in Employee)
        {

        }

Но оттуда я не могу понять, как добавлять записи из класса.

Я пытался создать foreach l oop но я получаю ошибку «Сотрудник - это тип, который недопустим в данном контексте». Я могу найти несколько примеров, когда значения, которые я пытаюсь получить из класса, жестко запрограммированы, но ничего, откуда данные поступают из класс.

Цель состоит в том, чтобы создать группу текстовых полей с данными. Когда пользователи предоставляют данные в этих полях, они нажимают кнопку, которая принимает значения в текстовых полях и сохраняет их в классе. Затем код, приведенный ниже, очищал бы текстовые поля от их значений, и теперь пользователь может ввести другой пакет информации, который будет добавлен в класс.

Когда пользователь закончит ввод записей, я захочу l oop через класс и для каждой записи в классе выполните несколько простых математических вычислений. Так что вроде как работает калькулятор.

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020

edit

Хорошо, ваше новое редактирование проясняет ситуацию, но вы все равно не говорите, что вы будете sh делать со своими данными после их добавления в ваш класс Employee.

Предполагая, что вы используете ASP. NET, ваш код, вероятно, структурирован по шаблону, известному как MVC, где M (для модели) - ваш класс Employee, ваш Страница ASP - это V (для просмотра), и у вас будет другой класс / файл C (Controller).

Ваша страница пользовательского интерфейса используется для заполнения экземпляра Employee, так как вы Как уже говорилось, это затем передается через контроллер для хранения, как правило, в какой-либо базе данных.

Контроллер должен предоставлять либо пустой экземпляр Employee для представления, когда он открывается.

Кнопка «отправить» должна вызвать / вызвать Task в контроллере для сохранения экземпляра Employee. Это может быть в списке локально в контроллере или путем прямого вызова базы данных, в зависимости от вашего протокола кэширования.

После сохранения контроллер должен предоставить представлению новый пустой экземпляр Employee.

Имеет ли это смысл и имеет ли это отношение к вашей ситуации?

оригинальный ответ ниже

Ваш вопрос немного неясен.

Если вы собираете данные для заполнения экземпляра Employee со страницы ASP, а затем смотрите на сохранение этих данных на удаленном сервере, то как это будет зависеть от вашего удаленного API.

Вы можете получить все данные из любых свойств класса Как-то так?

using System.IO;
using System;
using System.Text;
using System.Reflection;
using System.Linq;

class Program
{
    static void Main()
    {
        Employee emp1 = new Employee();
        emp1.EmpID = "1234";
        emp1.Hours = "46";
        emp1.Minutes = "32";
        emp1.Pages = "5";
        emp1.Certs = "none";
        emp1.HourlyRate = 12.45;

        StringBuilder sb = new StringBuilder();
        sb.Append($"{emp1.GetType().Name}:");
        var props = emp1.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance)
                            .Where(p => p.CanRead);

        foreach (var p in props)
        {
           sb.Append($"{p.Name}=");
           sb.Append($"{p.GetValue(emp1).ToString()};");
        }

        Console.WriteLine(sb.ToString());
    }
}

Выход:

Employee:EmpID=1234;Hours=46;Minutes=32;Pages=5;Certs=none;HourlyRate=12.45;

0 голосов
/ 21 апреля 2020

Таким образом вы можете добавлять значения в список.

public class Employee{
    public string EmpID { get; set; }
    public string Hours { get; set; }
    public string Minutes { get; set; }
    public string Pages { get; set; }
    public string Certs { get; set; }
    public double HourlyRate { get; set; } 
};

public static void Main()
{
    List<Employee> employees = new List<Employee>()
    {
        new Employee() {EmpID = 1},
        new Employee() {EmpID  = 2}
    };

    //or this way

    List<Employee> employees = new List<Employee>();
    employees.Add(new Employee() {EmpID = 1});
    employees.Add(new Employee() {EmpID = 2});


    foreach(var employee in employees)
    {
        Console.WriteLine(employee.EmpID);
    }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...