LINQ高效字典值排序
程序開發中,經常需要根據字典的值進行排序。例如,一個字典存儲單詞及其出現頻率,需要按頻率降序排列。
雖然SortedList
可以對單個值(如頻率)排序,但它無法直接映射回原始鍵。而SortedDictionary
是根據鍵排序的,自定義類實現起來比較繁瑣。
LINQ提供了一種優雅的解決方案:
<code class="language-csharp">Dictionary<string, int> myDict = new Dictionary<string, int>(); myDict.Add("one", 1); myDict.Add("four", 4); myDict.Add("two", 2); myDict.Add("three", 3); var sortedDict = from entry in myDict orderby entry.Value ascending select entry;</code>
這段代碼創建一個新的字典sortedDict
,其鍵值對按值的升序排列。它允許根據不同的條件進行排序,或選擇排序字典的特定部分。例如,要查找前10個最頻繁的單詞,可以使用:
<code class="language-csharp">var top10 = sortedDict.Take(10);</code>
以上是如何使用LINQ有效地按值對字典進行分類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!