【发布时间】:2018-04-28 01:47:36
【问题描述】:
我正在制作一个经常更新的分数动态列表。最终,这用于产生整体评级,因此需要删除较旧的条目(基于某些参数,而不是时间),以防止对整体的 +/- 权重过重。它将从一个单独的枚举中一次添加多个值。
List<int> scoreList = new List<int>();
foreach(Item x in Items)
{
scoreList.Add(x.score);
}
//what I need help with:
if(scoreList.Count() > (Items.Count() * 3))
{
//I need to remove the last set (first in, first out) of values size
//Items.Count() from the list
}
如果有人能提供帮助,将不胜感激 :) 我不得不让代码有点通用,因为它写得相当神秘(没有写方法)。
【问题讨论】:
-
如果你需要 FIFO,你可以使用 Queue<int> 而不是 List
。 -
对未来读者的警告:标题最初说的是“.. 最后 n 个项目”,但接受的答案删除了 first n 个项目,因为它们是最旧的,基于有问题的代码示例。下面的一些答案确实删除了“Last n”,因此请仔细阅读答案,看看它们是否符合您的要求。
-
如果要对数据进行排序,请不要使用基于队列的实现
标签: c#