Member 13818142 Ответов: 2

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


привет,
Я ввел данные сотрудника в консоль во время компиляции, теперь мне нужно отобразить эти данные в alist.

Что я уже пробовал:

namespace Program1
{
    class Employee
    {
        public string Empname = "";
        public int EMPID = 0;
        //public void print()
        //{
        //    Console.WriteLine("\n Employee Id is " + EMPID);
        //    Console.WriteLine("\n Employee Name is " + Empname);
        //}
        //Declare Employee ID
        public int EmployeeID
        {
            get;
            set;
        }
        //Declare Employee Name
        public string EmployeeName
        {
            get;
            set;
        }
        //public override string ToString()
        //{

        //    for (int i = 0; i < 24; i++) //just user the static array length
        //    {
        //        EMPID[i].Number = Console.ReadLine();
        //        Empname[i].Name = Console.ReadLine();
        //    }
        //    return "EmployeeID =" + EMPID + " , EmployeeName = " + Empname;
        //}
        // foreach (var item in newlist.OrderBy(Employee => Employee.empid)) Console.WriteLine(Employee);
    }
    class Program
    {
        public static void Main()
        {
           // Employee e = new Employee();// create object with employee 
           // //e.EmployeeID = 501;
           // //e.EmployeeName = "Anusha";
           // //Console.WriteLine(" Employee Data:{0}", e.EmployeeID);
           // //Console.WriteLine(" Employee Data:{0}", e.EmployeeName);
           // //Console.ReadLine();
           //for (int i = 0; i<2; i++)
           // {
            //    Console.WriteLine("Enter Employee ID", e.EmployeeID);
            //    Console.ReadLine();
            //    Console.WriteLine("Enter Employee name", e.EmployeeName);
            //    Console.ReadLine();
            //    string line = Console.ReadLine();
            //    if (line == "exit")
            //    {
            //        break;
            //    }
            //}
           //Console.WriteLine("Employee ID :" + e.EMPID + '\t' + "Employee Name :" + e.Empname);
           //Console.ReadLine();         
            Console.WriteLine(" Enter Employee ID");
            var EmpID = int.Parse(Console.ReadLine());
            var employee1 = new Employee
            {
                EmployeeID= EmpID;
            }
        }
    }

        //public class Book
        //{
        //    public string BookName { get; set; } = string.Empty;
        //    public string Author { get; set; } = string.Empty;
        //    public string ISBN { get; set; } = string.Empty;
        //}
}

lw@zi

Можете ли вы обновить вопрос с объяснением того, что вы пытаетесь сделать? Это не совсем понятно.

Member 13818142

я написал ниже код, используя методы get и set для ввода сведений о сотруднике, теперь, если я ввожу более двух сведений о сотруднике, я хочу отобразить их в списке ... как я могу отобразить значения, которые были введены в консоль в списке
классный работник
{
публичная строка Empname = "";
public int EMPID = 0;
//общественного недействительными печати()
//{
// Консоль.WriteLine("\n Employee Id is " + EMPID);
// Консоль.WriteLine("\n Employee Name is " + Empname);
//}
//Объявить идентификатор сотрудника
public int EmployeeID
{
получить;
набор;
}
//Объявить Имя Сотрудника
публичная строка EmployeeName
{
получить;
набор;
}
Приставка.WriteLine(Сотрудник);
}
классная программа
{
публичный статический пустота главный()
{
Employee e = new Employee();// создать объект с помощью employee
for (int i = 0; i<2; i++)
{
Приставка.WriteLine("введите идентификатор сотрудника", например EmployeeID);
Приставка.Линия чтения();
Приставка.WriteLine("введите имя сотрудника", например EmployeeName);
Приставка.Линия чтения();
строки = консоли.Линия чтения();
если (строка == "выход")
{
перерыв;
}
}
Приставка.Метода WriteLine("идентификатор сотрудника :" + Эл.Empid в + '\Т' + "имя сотрудника :" + Эл.Столбец empname);
Приставка.Линия чтения();
}
}

//публичная классная книга
//{
// public string BookName { get; set; } = string.Пустой;
// public string Author { get; set; } = string.Пустой;
// public string ISBN { get; set; } = string.Пустой;
//}
}

TommoDotCommo

Это не похоже на то, что вы собираетесь использовать базу данных, поэтому вся введенная вами информация будет доступна только до тех пор, пока вы не закроете приложение.

Ваша программа также имеет возможность запрашивать только один идентификатор сотрудника, поэтому нет смысла отображать список одного сотрудника.

Что именно вы хотите, чтобы ваша программа делала?

Member 13818142

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

Пример: мой o/p в консоли
Введите идентификатор сотрудника :501
введите имя сотрудника : XXXXXX
Введите идентификатор сотрудника :502
введите имя сотрудника : XXXXXX
Введите идентификатор сотрудника :503
введите имя сотрудника : XXXXXX
Таким образом, я ввел 3 детали сотрудника, поэтому я хочу прочитать эти детали и отобразить их в списке, подобном этому
Идентификаторы сотрудников:501,502,503..
empoyee имена:xxxx

Sinisa Hajnal

Что это за список? Вы находитесь в консольном приложении, вы просто пишете строки, отформатированные так, как вам нужно.

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

Member 13818142

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

Пример: мой o/p в консоли
Введите идентификатор сотрудника :501
введите имя сотрудника : XXXXXX
Введите идентификатор сотрудника :502
введите имя сотрудника : XXXXXX
Введите идентификатор сотрудника :503
введите имя сотрудника : XXXXXX
Таким образом, я ввел 3 детали сотрудника, поэтому я хочу прочитать эти детали и отобразить их в списке, подобном этому
Идентификаторы сотрудников:501,502,503..
empoyee имена:xxxx

2 Ответов

Рейтинг:
15

OriginalGriff

Ваша проблема здесь:

public static void Main()
    {
    Employee e = new Employee();// create object with employee 
    for (int i = 0; i<2; i++)
        {
        Console.WriteLine("Enter Employee ID", e.EmployeeID);
        Console.ReadLine();
        Console.WriteLine("Enter Employee name", e.EmployeeName);
        Console.ReadLine();
        string line = Console.ReadLine();
        if (line == "exit")
            {
            break;
            }
        }
    Console.WriteLine("Employee ID :" + e.EMPID + '\t' + "Employee Name :" + e.Empname);
    Console.ReadLine(); 
    }
Вы всегда создаете только один экземпляр сотрудника - так что внутри вашего цикла все, что вы можете сделать (если ваш код что - то сделал, и он даже не будет компилироваться в данный момент, а тем более делать что-то полезное), - это перезаписать содержимое, которое у вас уже есть.

Он не будет компилироваться, потому что ваш класс EMployee включает код, который не находится внутри метода:
class Employee
    {
    public string Empname = "";
    public int EMPID = 0;
    public int EmployeeID
        {
        get;
        set;
        }
    public string EmployeeName
        {
        get;
        set;
        }
    Console.WriteLine(Employee);  <<<---- This line isn't in a method
    }

Но вам действительно нужно вернуться к основам и начать все сначала...
class Employee
    {
    public int EmployeeID { get; set; }
    public string EmployeeName { get; set; }
    }
Подойдет для вашего класса сотрудников.
Теперь, чтобы использовать его:
public static void Main()
    {
    List<Employee> employees = new List<Employee>();
    for (int i = 0; i<2; i++)
        {
        Employee employee = new Employee();
        Console.WriteLine("Enter Employee name", e.EmployeeName);
        string line = Console.ReadLine();
        if (line == "exit")
            {
            break;
            }
        ... Fill in Employee details here
        employees.Add(employee);
        }
    foreach (Employee employee in employees)
        {
        ... print Employee details here
        }
    Console.ReadLine(); 
    }


Member 13818142

@Original griff спасибо за решение, но я не могу распечатать данные сотрудника, я получаю значение как ноль и ноль .пожалуйста, предложите

OriginalGriff

И как вы ожидаете, что я буду иметь представление о том, почему, когда вы не показываете мне фактический код, который вы использовали, или не говорите мне, что отладчик показал вам? Вы ведь сначала попробовали отладчик, не так ли?

Member 13818142

@Griff я получаю out put со значениями это глупая ошибка , которую я сделал, но теперь, если я введу 2 значения во время печати данных, я получу только последнее напечатанное значение
предположим я ввожу 2 идентификатора сотрудников 501 и 502 во время печати я получаю только 502

OriginalGriff

Рискуя повторить: "и как вы думаете, что я буду иметь представление, почему, когда вы не показываете мне фактический код, который вы использовали, или не говорите мне, что отладчик показал вам?"

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

Рейтинг:
11

TommoDotCommo

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

public static void Main()
{
	List<Employee> employees = new List<Employee>();
	for (int i = 0; i<2; i++)
	{
		Employee e = new Employee();// create object with employee
		Console.WriteLine("Enter Employee ID:");
		e.EmployeeID = int.Parse(Console.ReadLine());
		Console.WriteLine("Enter Employee name:");
		e.EmployeeName = Console.ReadLine();
		employees.Add(e);
		string line = Console.ReadLine();
		if (line == "exit")
		{
			break;
		}
	}
	foreach (Employee employee in employees)
	{
		Console.WriteLine("Employee ID :" + employee.EmployeeID + '\t' + "Employee Name :" + employee.EmployeeName);
		Console.ReadLine();
	}
}


Member 13818142

Спасибо сэр за ваше решение но мне нужно сделать это с помощью методов get и set,

TommoDotCommo

Для моего ответа требуется созданный Вами класс Employee, который использует методы get и set. На данный момент ясно, что у вас есть ограниченное понимание более крупных концепций здесь, поэтому я думаю, что будет лучше, если вы вернетесь к исходному коду/вопросу, который вам дал ваш учитель, и просмотрите некоторые примеры, которые они предоставили более подробно.

Member 13818142

Спасибо, сэр, я получил его, но получил то же значение, которое ввел последним. не получив все идентификационные данные сотрудника enetred.

TommoDotCommo

Вы, вероятно, путаете свои "Е" и "сотрудник" части кода.