我想制作一个只有10个元素的分数列表。基本上,简单的集合增加了价值。如果新值高于其他值,则添加一个,最后一个退出。 (每个人都知道它看起来像:))
其次,我需要一个已更改的5个最新值的列表,如历史记录面板。
总而言之,两者都非常相似 - 列表中的项目有限。
这些是否有一个整洁的模式?一些很酷的片段?我需要使用Silverlight for WP7,低功耗解决方案会很棒。我应该自己制作收藏品吗?从一个或实现接口派生。 Thx提前。
答案 0 :(得分:2)
我认为System.Collections.Generic.Queue<T>
正是您想要的。
答案 1 :(得分:0)
我做了类似的事情将它限制为15.在WP7中似乎没有OrderBy:/
public void SaveScore(ScoreInfo scoreInfo)
{
var listOfScoreInfo = this.GetListOrDefault<ScoreInfo>(App.SCORE);
bool isAdd = true;
foreach (var info in listOfScoreInfo)
{
if (info.Name == scoreInfo.Name && info.Score == scoreInfo.Score)
isAdd = false;
}
if(isAdd)
listOfScoreInfo.Add(scoreInfo);
listOfScoreInfo.Sort(scoreInfo.Compare);
if (listOfScoreInfo.Count > 15)
{
listOfScoreInfo.RemoveAt(15);
}
this.AddOrUpdateValue(App.SCORE, listOfScoreInfo);
this.Save();
}