我有一个OrderedDictionary,我正在迭代它:
IDictionaryEnumerator myEnumerator = Model.RecentViews.GetEnumerator();
while (myEnumerator.MoveNext())
{
<div>
<a href=@(myEnumerator.Key)>@myEnumerator.Value</a>
</div>
}
但实际上我想反向迭代它。谁能告诉我怎么做?
基本上我正在使用这个OrderedDictionary来显示网站上最后访问过的页面的链接列表。关键是url,值是链接的文本。我试图在顶部显示最新的,因此我想向后迭代。我使用OrderedDictionary的原因是因为必须保留链接的顺序。
也许我没有使用合适的收藏品我不确定?
答案 0 :(得分:0)
这可以解决这个问题吗?
foreach(var key in Model.RecentViews.Keys.Cast<*TheTypeOfTheKey*>().Reverse())
{
<div>
<a href=@(key)>@Model.RecentViews[key]</a>
</div>
}
修改强>
演示使用通用的SortedList(控制台应用程序);
class Program
{
static void Main(string[] args)
{
SortedList<int, string> dict = new SortedList<int, string>();
dict.Add(22, "Entry22");
dict.Add(11, "Entry11");
//forward
Console.WriteLine("Forward:");
foreach (var item in dict)
{
Console.WriteLine("{0} : {1}", item.Key, item.Value );
}
//backward
Console.WriteLine("Backward:");
foreach (var item in dict.Reverse())
{
Console.WriteLine("{0} : {1}", item.Key, item.Value );
}
}
}
输出:
Forward:
11 : Entry11
22 : Entry22
Backward:
22 : Entry22
11 : Entry11