C# 找到体验并用它向用户展示
我有一个文本框,用户在其中输入一些数字,例如6。我有一个基于我的类的datagridview,它包含姓名、工作日期和职位。我需要向在本公司工作6年或以上的员工展示。当用户输入一个新号码时,显示在该段时间内工作的新员工列表。有必要从今天的日期中减去雇佣日期,如果该数字等于或高于文本框中输入的数字,则显示在本公司具有此类工作经验的员工。我已经对name做了类似的操作,下面是代码:C# 找到体验并用它向用户展示,c#,datetime,datagridview,C#,Datetime,Datagridview,我有一个文本框,用户在其中输入一些数字,例如6。我有一个基于我的类的datagridview,它包含姓名、工作日期和职位。我需要向在本公司工作6年或以上的员工展示。当用户输入一个新号码时,显示在该段时间内工作的新员工列表。有必要从今天的日期中减去雇佣日期,如果该数字等于或高于文本框中输入的数字,则显示在本公司具有此类工作经验的员工。我已经对name做了类似的操作,下面是代码: var text = textBox4.Text; var result = workers.MyList.Where(
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;
您在
worker.MyList
中有关于加入日期的属性吗?向我们显示用于experience@PrasadTelkikar我在帖子中添加了我添加新员工的方式您的日期属性是否包含加入日期?@prasadelkikikar是的,是datatime我需要从文本框中获取有关年份的信息,是的,我的日期类型是DateTime。我这样尝试了,但没有成功。私有void textBox3_TextChanged(对象发送者,事件参数e){int exp=Convert.ToInt32(textBox3.Text);var resultt=workers.MyList.Where(x=>(x._Date.Year-DateTime.Now.Year)>=exp.ToList();//转换为列表dataGridView1.DataSource=resultt;}有效,我刚换了x.Date.Year和今天。谢谢哦,是的,很抱歉,加入日期总是小于今天的日期。我在我的答案Convert中修复了它。如果文本框包含非整数值,ToInt32
将抛出错误,请检查我使用的答案int.TryParse()
@prasadelkikikar是的,它也起作用,但我对它做了一些更改。如果(int.TryParse(textBox3.Text,out int exp)){var result=workers.MyList.Where(x=>(DateTime.Now.Year-x.(u Date.Year)>=exp.ToList();dataGridView1.DataSource=result;}else MessageBox.Show(“无效经验输入数字”,“无效经验”,MessageBoxButtons.OK,MessageBoxIcon.Error);}