首頁 > 後端開發 > C++ > 如何保證 C# 中字典元素的有序枚舉?

如何保證 C# 中字典元素的有序枚舉?

Susan Sarandon
發布: 2025-01-17 18:47:10
原創
580 人瀏覽過

How Can I Guarantee Ordered Enumeration of Dictionary Elements in C#?

迭代 C# 字典時保持順序

標準 C# 字典本身並不能保證枚舉期間元素的特定順序。 無論插入順序為何,順序可能會發生不可預測的變化。 但是,如果需要,可以透過一些方法來控制迭代順序。

有序枚舉方法

幾個策略可以保證字典元素的有序遍歷:

1。將 KeyValuePair 對進行排序:

此方法將字典轉換為 KeyValuePair 物件的排序數組。

<code class="language-csharp">var sortedKVPs = _Dictionary.OrderBy(x => x.Key).ToArray();

foreach (KeyValuePair<string, string> kvp in sortedKVPs)
{
  Trace.Write(String.Format("{0}={1}", kvp.Key, kvp.Value));
}</code>
登入後複製

此程式碼片段根據鍵對鍵值對進行排序,然後迭代排序後的數組,在此範例中提供字母順序。

2。利用 OrderedDictionary:

OrderedDictionary 類別明確維護插入順序。

<code class="language-csharp">// Create an ordered dictionary
var orderedDictionary = new OrderedDictionary();

// Add elements
orderedDictionary.Add("orange", "1");
orderedDictionary.Add("apple", "4");
orderedDictionary.Add("cucumber", "6");

// Add using indexer
orderedDictionary["banana"] = 7;
orderedDictionary["pineapple"] = 7;

// Enumerate the ordered dictionary
foreach (DictionaryEntry entry in orderedDictionary)
{
  Trace.Write(String.Format("{0}={1}", entry.Key, entry.Value));
}</code>
登入後複製

元素按照新增到 OrderedDictionary 的確切順序進行檢索。 請注意,OrderedDictionary 是一個遺留類別;對於新項目,請考慮使用 SortedDictionarySortedList<TKey, TValue>SortedDictionary 對鍵進行排序,並且 SortedList<TKey, TValue> 提供類似的功能,在某些情況下具有更好的性能。

以上是如何保證 C# 中字典元素的有序枚舉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板