找到经验并用它来展示用户

find experience and display users with it

我有一个文本框,用户可以在其中输入一些数字,例如 6。我有一个基于 class 的数据网格视图,其中包含姓名、工作日期和职位。我需要展示在这家公司工作了 6 年或更长时间的员工。当用户输入一个新号码时,显示在该时间段工作的新员工列表。需要用今天的日期减去就业日期,如果这个数字等于或大于文本框中输入的数字,则显示在该公司有此类工作经验的员工。我已经用名称做了类似的事情,这是它的代码:

var text = textBox4.Text;
var result = workers.MyList.Where(m => m._Name == text).ToList();
dataGridView1.DataSource = result;

为了添加新员工,我使用了:

workers.Add(new employee(textBox1.Text, dateTimePicker1.Value, textBox2.Text));
var data = workers.MyList.Select(bring => new
{
    Name = bring._Name,
    Date = bring._Date,
    Position = bring._Position,
}).ToList();
dataGridView1.DataSource = data;

如果你的Date属性是员工入职日期类型DateTime,那么你可以试试下面的代码,

if(int.TryParse(textBox3.Text, out int exp))
{
   //Get difference between today's year and  Date year
   dataGridView1.DataSource = data
                .Where(x => (DateTime.Today.Year - x.Date.Year) >= exp)  
                .ToList(); //Convert to list
}
else
   MessageBox.Show("Invalid experiece enter a number", "Invalid experience", MessageBoxButtons.OK, MessageBoxIcon.Error);

这对我有用。

var exp = Convert.ToInt32(textBox3.Text);
var res=  workers.MyList.Where(x => (DateTime.Now.Year - x._Date.Year) >= exp)
            .ToList(); //Convert to list
dataGridView1.DataSource = res;