如何在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中有任何类似字典的集合,它按排序。

+0

做到,但如何在降序排序? –

+0

@AmitKumar:改为使用'OrderByDescending'。 (我编辑了我的答案以表明这一点。) –

+0

谢谢@JonSkeet此信息非常有用。 –

按降序排列,排序可以用下面的语句

var ordered = dict.OrderByDescending(pair => pair.Value); 
+0

感谢您的答案兄弟。你的回答也是对的,但我只能接受一个。 –

+0

没问题.... –