我有一个字典对象:
Dictionary<string, string[]> dictCompanies = new Dictionary<string, string[]>();
Run Code Online (Sandbox Code Playgroud)
如何在键上对此对象进行排序?
我尝试使用下面的OrderBy,但它似乎没有用
dictCompanies .OrderByDescending(c=> c.Key);
Run Code Online (Sandbox Code Playgroud)
我将这个字典对象绑定到aspx页面中的checkboxlist.
我尝试使用委托对这个ListItemCollection进行排序......但仍然没有运气......
我错过了什么吗?
谢谢
Jon*_*eet 11
您不能对实际进行排序Dictionary<TKey,TValue>- 来自它的订单项基本上由内部实现决定.你可能想看看SortedDictionary<TKey,TValue>和SortedList<TKey,TValue>虽然-他们仍然有键/值查找,但让你基于键进行排序.IComparer<T>如果您想以特定方式按键排序,则可以指定自己的.
另一种选择(取决于你的情况)是坚持字典直到你需要它 - 然后将其复制到列表中并在绑定到控件之前对其进行排序.显然,此时你需要在每次更改时刷新绑定,但这对你来说可能不是问题.
如果您的OrderBy语句本身就是这样,那么顺便说一句,您需要了解LINQ运算符始终是运算符总是采用序列并返回不同的序列(或聚合结果) - 它们永远不会就地修改序列.实际上,它们不能像IEnumerable<T>只读界面那样.
| 归档时间: |
|
| 查看次数: |
1575 次 |
| 最近记录: |