首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保留最后N项,并从ListBox中删除其他项

保留最后N项,并从ListBox中删除其他项
EN

Stack Overflow用户
提问于 2016-03-27 23:26:03
回答 4查看 784关注 0票数 1

我有一个C# Winform和一个ListBox。我试图删除所有的项目,除了最后5个项目。ListBox排序设置为升级换代。

ListBox中的项如下所示:

代码语言:javascript
复制
2016-3-1
2016-3-2
2016-3-3
2016-3-4
...
2016-03-28

下面是我删除开头项的代码。

代码语言:javascript
复制
for (int i = 0; i < HomeTeamListBox.Items.Count - 5; i++)
{
    try
    {
        HomeTeamListBox.Items.RemoveAt(i);
    }
    catch { }
}

我也试过HomeTeamListBox.Items.RemoveAt(HomeTeamListBox.Items[i]);

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-27 23:40:37

虽然列表中有更多的n项,但是您应该从列表的开头删除项。

这样,就可以保留ListBox的最后一个ListBox项。

代码语言:javascript
复制
var n = 5; 
while (listBox1.Items.Count > n)
{
    listBox1.Items.RemoveAt(0);
}
票数 5
EN

Stack Overflow用户

发布于 2016-03-27 23:30:35

每次循环时,索引i都会增加一个,但是每次循环时都要删除一个元素。您要做的是在头5次传递时移除索引0处的每个元素。所以用你的电流循环

HomeTeamListBox.Items.RemoveAt(HomeTeamListBox.Items);

是你身体里想要的。

票数 0
EN

Stack Overflow用户

发布于 2016-03-27 23:44:27

这应该适用于你;

代码语言:javascript
复制
if(HomeTeamListBox.Items.Count > 5)
{
    var lastIndex = HomeTeamListBox.Items.Count - 5; 
    for(int i=0; i < lastIndex; i++)
    {
       HomeTeamListBox.Items.RemoveAt(i);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36253868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档