listBox1.Items.Insert(0, listBox1snew[i]);
这是没有意义的。listBox1snew
是空的。我相信你的意思listBox1s[i]
。
listBox1.DataSource = listBox1snew;
这更没有意义。首先,您在其中插入项目,listBox1.Items
然后覆盖DataSource
,实际上忽略了Items
. 另外,您没有listBox1snew
以任何方式修改,所以它仍然是空的!
我认为你追求的是:
- 将元素从 复制
listBox1s
到listBox1snew
。
- 设置
DataSource
为listBox1snew
。
那看起来像:
private void button1_Click_1(object sender, EventArgs e)
{
List<RentalCar> listBox1snew = new List<RentalCar>();
for (int i = 0; i < listBox1s.Count; i++)
{
if (DateTime.Now.Subtract(listBox1s[i].WOF).Days <= 7)
{
// Copy from listBox1s to listBox1snew
listBox1new.Add(listBox1s[i]);
}
}
// Use listBox1new as new data source
listBox1.DataSource = listBox1new;
}
此外,您可以使用 LINQ 轻松表达此过滤器:
private void button1_Click_1(object sender, EventArgs e)
{
listBox1.DataSource = listBox1s.Where(x => DateTime.Now.Subtract(x.WOF).Days <= 7).ToList();
}