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();
}