C# 是否有更好的方法从列表中添加另一个 class 中的元素?
C# is there a better way of adding an element from a list in another class?
这是第一篇class
public class Employees
{
public int empID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Position { get; set; }
public string Email { get; set; }
}
public class list
{
static public List<Eployees> _employees = new List<Employees>();
public List<Employees> GetList()
{
return _employees;
}
public string fname;
public void Add()
{
int result = _employees.Count(x => x.empID == x.empID);
int id = result + 1; //auto increment for empID
_employees.Add(new Employees
{
empID = id,
FirstName = fname
});
}
这是第二个 class
class Class1
{
public static main void Main(string[] args)
{
ManageEmployee();
}
static void AddEmployees
{
list ll = new list();
Console.WriteLine("Enter FirstName ");
string name = Console.ReadLine();
ll.name = name;
ll.Add();
string view = Console.ReadLine();
foreach(var Employees in list._employees)
{
Console.WriteLine(Employees.empID + " | " + Employees.FirstName);
}
string reset = Console.ReadLine();
AddEmployees();
}
}
我是 C# 的新手,基本上,我想知道是否有更好的方法向列表添加元素?我看到我的老师做了一些不同的事情,但我不明白她是怎么做到的,我一直在寻找一种更好的添加方式
首先,我会用单数形式命名 class holding a single employee:
public class Employee
{
public int empID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Position { get; set; }
public string Email { get; set; }
}
然后,您的 class 管理我命名为 EmployeesManagement
的员工,我将强制在 Add
方法中提供名字(也许提供其他属性也是有益):
public class EmplyoeesManagement
{
private List<Employee> _employees = new List<Employee>();
public List<Employee> GetList()
{
return _employees;
}
public void Add(string firstName)
{
_employees.Add(new Employee { empID = _employees.Select(e => e.empID).Max() + 1, FirstName = firstName });
}
}
请注意,新员工的 ID 不是基于列表中的员工数量创建的(猜猜当您从列表中删除员工时会发生什么),而是基于现有的最大值。
此外,想想哪些属性需要是静态的 public。如果没有任何特殊原因,请将它们设置为非静态和私有
在你的第二个 class 中,我会使用字符串生成器来创建现有员工的完整列表,但这对你来说是一个练习。
请使用缩进,这样你的代码看起来会更整洁。
这是第一篇class
public class Employees
{
public int empID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Position { get; set; }
public string Email { get; set; }
}
public class list
{
static public List<Eployees> _employees = new List<Employees>();
public List<Employees> GetList()
{
return _employees;
}
public string fname;
public void Add()
{
int result = _employees.Count(x => x.empID == x.empID);
int id = result + 1; //auto increment for empID
_employees.Add(new Employees
{
empID = id,
FirstName = fname
});
}
这是第二个 class
class Class1
{
public static main void Main(string[] args)
{
ManageEmployee();
}
static void AddEmployees
{
list ll = new list();
Console.WriteLine("Enter FirstName ");
string name = Console.ReadLine();
ll.name = name;
ll.Add();
string view = Console.ReadLine();
foreach(var Employees in list._employees)
{
Console.WriteLine(Employees.empID + " | " + Employees.FirstName);
}
string reset = Console.ReadLine();
AddEmployees();
}
}
我是 C# 的新手,基本上,我想知道是否有更好的方法向列表添加元素?我看到我的老师做了一些不同的事情,但我不明白她是怎么做到的,我一直在寻找一种更好的添加方式
首先,我会用单数形式命名 class holding a single employee:
public class Employee
{
public int empID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Position { get; set; }
public string Email { get; set; }
}
然后,您的 class 管理我命名为 EmployeesManagement
的员工,我将强制在 Add
方法中提供名字(也许提供其他属性也是有益):
public class EmplyoeesManagement
{
private List<Employee> _employees = new List<Employee>();
public List<Employee> GetList()
{
return _employees;
}
public void Add(string firstName)
{
_employees.Add(new Employee { empID = _employees.Select(e => e.empID).Max() + 1, FirstName = firstName });
}
}
请注意,新员工的 ID 不是基于列表中的员工数量创建的(猜猜当您从列表中删除员工时会发生什么),而是基于现有的最大值。
此外,想想哪些属性需要是静态的 public。如果没有任何特殊原因,请将它们设置为非静态和私有
在你的第二个 class 中,我会使用字符串生成器来创建现有员工的完整列表,但这对你来说是一个练习。
请使用缩进,这样你的代码看起来会更整洁。