删除列表中的项目c#

时间:2017-03-14 22:26:06

标签: c# linq list memory-management

我需要一些帮助。我的项目中有2个列表:1个包含5,000个项目listA,另一个包含10,000个项目listB。我正在使用for loop

阅读列表
for(int j = 5000 - 1; j > 0; j--)

我需要删除listA中的最后一项,而listB中,我需要删除最后两项。这个过程是必要的,因为我需要在我的软件中优化内存。

我非常感谢任何帮助谢谢

我试图这样做,但它不起作用:

listA.RemoveAt(j);
listB.RemoveAt(9999 - i + 1);
listB.RemoveAt(9999 - i );

2 个答案:

答案 0 :(得分:3)

删除最后一项

listA.RemoveAt(listA.Count - 1)

对于最后两项,只需执行两次。你应该检查计数是否已经为0,否则你会得到一个例外。

答案 1 :(得分:0)

由于j似乎总是等于listA中最后一项的索引,2 * j + 1始终等于listB中最后一项的索引。所以你可以使用enter image description here / RemoveAt

listA.RemoveAt(j);
listB.RemoveRange(2 * j, 2);

此外,如果内存管理是一个大问题,您可能需要考虑通过设置RemoveRange一段时间后缩小列表(请注意,这可能会对性能产生影响,因此您应该过于急切地避免这样做)。 / p>

listA.Capacity = j;
listB.Capacity = 2 * j;