如何在Windows Phone 8中对字典值进行排序?
我有一个DateTime的字典,我想按升序或降序对字典的值进行排序。我可以使用很长的过程来做到这一点,但我知道可能有一些内置的方法来排序它们。请建议对这些字典值进行排序的最短途径。如何在Windows Phone 8中对字典值进行排序?
字典,我使用是
Dictionary<string, DateTime> dict = new Dictionary<string, DateTime>();
你不能做到这一点*在一本字典,因为字典是无序的(或者更确切地说,排序可以改变,而且是一个实现细节)。您可以使用LINQ得到尽管对一个有序的序列很容易:
var ordered = dict.OrderBy(pair => pair.Value); // To order by DateTime value
或
var ordered = dict.OrderBy(pair => pair.Key); // To order by String key
然后,您可以在ordered
迭代不过你想要的。使用OrderByDescending
强制降序而不是升序。
另外,如果你想有一个收集其订货会自动维护,您可以使用SortedList<,>
或SortedDictionary<,>
如果(且仅当)您想通过键进行排序。我不相信在.NET中有任何类似字典的集合,它按值排序。
按降序排列,排序可以用下面的语句
var ordered = dict.OrderByDescending(pair => pair.Value);
感谢您的答案兄弟。你的回答也是对的,但我只能接受一个。 –
没问题.... –
做到,但如何在降序排序? –
@AmitKumar:改为使用'OrderByDescending'。 (我编辑了我的答案以表明这一点。) –
谢谢@JonSkeet此信息非常有用。 –