为单个员工分配十进制值

本文关键字:十进制 分配 单个员 | 更新日期: 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"