当前位置:  开发笔记 > 编程语言 > 正文

在C#.NET 2.0中,反向执行foreach的简单方法是什么?

如何解决《在C#.NET2.0中,反向执行foreach的简单方法是什么?》经验,为你挑选了3个好方法。

假设我有一个Dictionary对象:

Dictionary myDictionary = new Dictionary();

现在我想以相反的顺序遍历字典.我不能使用简单的for循环,因为我不知道字典的键.一的foreach很简单:

foreach (SomeObject object in myDictionary.Values)
{
    // Do stuff to object
}

但是我怎么能反向执行呢?



1> leppie..:

字典或任何其他形式的哈希表都没有排序.所以你要做的就是毫无意义:)



2> Jonathan..:

我使用SortedList而不是字典.您仍然可以通过Key访问它,但您也可以通过索引访问它.

SortedList sCol = new SortedList();

sCol.Add("bee", "Some extended string matching bee");
sCol.Add("ay", "value matching ay");
sCol.Add("cee", "Just a standard cee");

// Go through it backwards.
for (int i = sCol.Count - 1; i >=0 ; i--)
    Console.WriteLine("sCol[" + i.ToString() + "] = " + sCol.GetByIndex(i));

// Reference By Key
foreach (string i in sCol.Keys)
    Console.WriteLine("sCol[" + i + "] = " + sCol[i]);

// Enumerate all values
foreach (string i in sCol.Values)
    Console.WriteLine(i);

值得注意的是,排序列表仅存储按键排序的键/值对.



3> Chris Wenham..:

如果你有.NET 3.5,你可以在IEnumerables上使用.Reverse()扩展方法.例如:

foeach (SomeObject o in myDictionary.Values.Reverse())
{
     // Do stuff to object
}


你需要引用 - >使用System.Linq;
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有