为单个员工分配十进制值
本文关键字:十进制 分配 单个员 | 更新日期: 2023-09-27 18:05:43
我目前正在制作一个工资系统。我有5到6个员工,每个人的时薪都不一样,我该如何给每个人分配时薪呢?
目前我有一些(这是不正确的)…
string[] employeeID = {"Brian", "Richard", etc....};
decimal hourlyPay = 0.0M;
if (employeeID == "Brian")
{
hourlyPay = 8.00M;
}
谢谢!
试试下面的代码:
string[] employeeID = {"Brian", "Richard"};
decimal hourlyPay = 0.0M;
for (int i = 0; i < employeeID.Length; i++)
{
if (employeeID[i] == "Brian")
{
hourlyPay = 8.00M;
}
}
Console.WriteLine(hourlyPay);
总是使用循环遍历数组中的所有元素,并通过索引访问它们。在填充、修改元素时,总是使用循环。
我猜你很可能需要给你的员工分配其他东西(例如:每周的工作时间,地址等),所以不要把所有东西都映射到字典或其他数组中,而是制作一个Class
来保存你的员工信息:
public class Employee
{
public string EmployeeId { get; set; }
public decimal HourlyPay { get; set; }
}
有了一个类,你可以保持你的模型可扩展,如果你需要将这些信息保存在某个地方,很容易序列化它或将它映射到一个DB表。
您可以将所有员工保存在一个列表中。要用一个值初始化它们,可以这样做:
List<Employee> employees = new List<Employee>();
employees.Add(new Employee { EmployeeId = "Brian", HourlyPay = 8.0M });
要在稍后阶段设置信息,只需获取具有相应ID的员工并设置其小时工资:
employees.FirstOrDefault(e => e.EmployeeId == "Brian").HourlyPay = 8.0M;
你可以创建一个字典,
var rates = new Dictionary<string, decimal>();
rates.Add("Brian",8.00M);
rates.Add("Richard",10.50M);
或者更简洁的版本,使用集合初始化式:
var rate = new Dictionary<string, decimal>
{
{"Brian", 8.00M},
{"Richard",10.50M}
};
使用字典,通过使用employeId,也是获取每个雇员时薪的最有效方法。这是一个0(1)的操作
如果你不喜欢这种方法,你可以声明一个名为Employee的类,如下所示:
public class Employee
{
public string Id { get; set; }
public decimal HourlyRate { get; set; }
public Employee(string id, decimal hourlyRate)
{
Id = id;
HourlyRate = hourlyRate;
}
}
然后,您可以定义一个Employee
对象数组,而不是一个包含员工id的数组。
var employees = new []
{
new Employee("Brian", 8.00M),
new Employee("Richard", 10.50M)
}
这样,每次创建员工时,您都必须提供Id和小时费率。
如何显示我的结果?
既然你选择了类的解,我将选择重载ToString
方法。
public class Employee
{
// The previous declarations, please see above.
public string override ToString()
{
return String.Format("Staff Name: {0}, Hourly Rate: {1}", Id, HourlyRate);
}
}
因此,当您调用employees[0].ToString()
实例时,您将得到以下字符串:
"Staff Name: Brian, Hourly Rate: 8.00"