我有一个文本框,用户可以在其中输入一些数字,例如,6。我还有一个基于我的类的datagridview,其中包含姓名、雇佣日期和职位。我需要向员工展示谁在这家公司工作了6年或更长时间。当用户输入新数字时,将显示在该时间段内工作的新员工列表。需要从今天的日期中减去雇佣日期,如果该数字等于或高于文本框中输入的日期,则显示在该公司具有此类工作经验的员工。我已经用name做了类似的事情,下面是代码:
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;发布于 2021-05-24 15:30:56
如果您Date属性是类型为DateTime的employees code,那么您可以尝试以下代码,
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);发布于 2021-05-24 15:58:19
这对我很有效。
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;https://stackoverflow.com/questions/67667730
复制相似问题