簡體   English   中英

NET中的哈希表未排序或未排序

[英]Unsort or unorder HashTable in .net

我正在使用C#中的哈希表,由於某種原因,由於哈希表對所有條目進行排序,因此無法得到預期的結果。

我想刪除此排序,因為我已經有需要打印的特定訂單中的列表

該列表會根據順序正確添加到哈希表中,但是當我遍歷HashTable時,它將對所有條目進行排序並生成完全排序的條目。 順便說一句,我正在使用DictionaryEntry遍歷哈希表。

謝謝

這是預期的行為。 它不對條目進行排序,哈希表條目以不確定的順序進行迭代。 它們針對隨機訪問進行了優化,因此,插入順序未保留在HashTable結構中,因此無法按插入順序對條目進行迭代。

根據MSDN頁面 ,對哈希表進行序列化和反序列化可以導致更改迭代順序。

您可能可以使用此問題/答案中概述的NameValueCollectionSortedDictionary

您的另一個選擇(假設以上兩個選項都不滿足您的要求)是創建一個完全滿足您要求的類。 您可以跟蹤條目並將它們存儲在列表(以及哈希表)中,然后返回列表的迭代器而不是類中的哈希表,這樣既可以按順序進行迭代,又可以進行快速隨機訪問。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM