DateTime nowTime = DateTime.Now;
for (int i= listData.Count-1; i>=0;i--)//倒叙删除,因为每次删除list的下标号会改变,倒叙就不存在这个问题了
{
if (!IsBetweenTime(nowTime.ToString(), listData[i].startTime.ToString(), listData[i].endTime.ToString()))
{
listData.RemoveAt(i);
}
}
我想删除时间不在某个范围的所有数据的时候,使用RemoveAt发现删除的很混乱,后来发现每次删除的时候下标都改变了.
解决方法:倒叙删除
PS:假如有1,2,3,4,5条数据,要删除3,5 如果从0开始删除,删除了3之后 5的下标变成了4,再去删除5就会报错
如果我们倒叙删除呢,先删5,再去删3就不会出现问题了