要求从最后面开始一个一个删除,因为ListView中的链表才用的是List,相当于队列,如果从前面删除的话,势必被删除项的后面所有的东西要向前面移动,这样会 导致多次分配资源,因而较慢(数量大的情况下),相反从后面的话,也就相当于在队列的尾部删除,不存在这个问题,因为它没有移动数据的必要。 var I:Integer; begin for I := Pred (ListView.Items.Count) downto 0 do begin ListView.Items.Delete(I); end; end;