Ada*_*itt 4 c# linq reverse sorteddictionary
我有以下字典:
SortedDictionary<int, string> dictionary = new SortedDictionary<int, string>();
dictionary.add(2007, "test1");
dictionary.add(2008, "test2");
dictionary.add(2009, "test3");
dictionary.add(2010, "test4");
dictionary.add(2011, "test5");
dictionary.add(2012, "test6");
Run Code Online (Sandbox Code Playgroud)
我想颠倒元素的顺序,这样当我在屏幕上显示项目时,我可以从2012开始.如果可能的话,我想将反向字典重新分配给变量字典.
我尝试过,dictionary.Reverse
但似乎并没有像我想象的那样容易.
Jep*_*sen 15
如果您正在使用最新版本的.NET 4.5(Visual Studio 2012),那么您可以非常轻松地使用它Comparer<>.Create
.就像这样:
var dictionary =
new SortedDictionary<int, string>(Comparer<int>.Create((x, y) => y.CompareTo(x)));
Run Code Online (Sandbox Code Playgroud)
注意lambda 中x
和的顺序y
.
你可以给SortedDictionary
一个IComparer<TKey>
建设.您只需提供一个可以逆转订单的产品.例如:
public sealed class ReverseComparer<T> : IComparer<T>
{
private readonly IComparer<T> original;
public ReverseComparer(IComparer<T> original)
{
// TODO: Validation
this.original = original;
}
public int Compare(T left, T right)
{
return original.Compare(right, left);
}
}
Run Code Online (Sandbox Code Playgroud)
然后:
var dictionary = new SortedDictionary<int, string>(
new ReverseComparer<int>(Comparer<int>.Default));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6969 次 |
最近记录: |