Hashtableのデータをコレクションに追加されたオブジェクトのプロパティでソートする必要があります。どうやってするか?私のプロジェクトでは.NET 2.0を使用しているため、.NET 2.0ランタイムではデフォルトで動作しない機能は使用できません(.NET 2.0で動作するC#3.0機能の一部を使用することができます任意の新しいdll)。ハッシュテーブルに追加されたオブジェクトはすべて同じ型です。 SortedListを使用してコンストラクタを介してHashtableを渡すと、キーだけでソートされます。カスタムソートロジックを渡す方法はありますか?Hashtableのカスタムソート(キーではない)
1
A
答えて
3
.NET 2.0にバインドされている場合は、IComparerを使用できます。 http://codebetter.com/davidhayden/2005/02/27/implementing-icomparable-for-sorting-custom-objects/
ハッシュテーブルは、何かを並べ替える場合は間違ったデータ構造です。
0
@SnoopyはIComparerを言った、それは本当に必要なものです。 SortedDictionary
をご覧ください。
0
ハッシュテーブルのdrawbacksをご覧ください。次に、利点を見て、適切なデータ構造を使用しているかどうかを判断します。ごくまれにソートすると、適切なデータ構造を使用している可能性があります。この場合、ソートには値を列挙してリストに入れる必要があります。頻繁にソートする場合は、search treeのような別のデータ構造に移行することを検討してください。まれにルックアップや検索を行う場合は、普通のリストを使うことを検討します。
0
一つの選択肢、あなたはハッシュテーブルの内容から、ソートされたリストを作成するに固執したい場合は、たIComparerのサブクラスを作成し、必要に応じてCompareメソッドをオーバーロードし、使用してソートされたリストを作成することです:
SortedList s = new SortedList(new MyIComparer());
次に、Hashtableの要素をリストに追加します。
関連する問題
- 1. なぜ私のHashTableはキーの衝突を許さないのですか?
- 2. HashTableのキーを見つけるメソッド
- 3. 高度なカスタムソート
- 4. hashCode()の戻り値とhashTableのキーの違いは何ですか?
- 5. Elasticsearchでのカスタムソート
- 6. は、カスタムソートSQL Serverの
- 7. HashTableのキーとして使用できる受け入れ可能なタイプ
- 8. NSFetchedResultsControllerカスタムソートが呼び出されない
- 9. ファクタを使用しないカスタムソート
- 10. Freemarker Hashtable <Integer、String>、キーで反復する
- 11. Xcode:NSSortDescriptorカスタムソート
- 12. カスタムソート順
- 13. カスタムソートのObjectListView
- 14. domaincollectionviewのカスタムソート
- 15. Unixのカスタムソート
- 16. SubDataFrameのカスタムソート
- 17. PowerBIチャートのカスタムソート
- 18. マングースのカスタムソート方法は?
- 19. UltraWebGrid - ASP .NETでのカスタムソート
- 20. jQueryのDataTableのカスタムソート
- 21. JQueryデータテーブルの列のカスタムソート可能なドロップダウン
- 22. Export-CSVのHashtable
- 23. HashTableのロード先
- 24. HashTableのIEnumerator?
- 25. Jqueryカスタムソートの問題
- 26. CAMLクエリのカスタムソート順
- 27. tablesorterのカスタムソート順 - jquery
- 28. QTableViewのカスタムソート方法?
- 29. PropertyGridの列挙型 - 単純なカスタムソート順
- 30. jQuery DataTablesの簡単なカスタムソート関数
私はIComparerを使うことができると知っていましたが、どうやってHashtableに渡すことができるのか分かりませんでした。とにかく、私は今、Hashtableの "Values"コレクションをそのコンストラクタに渡し、 "IComparer"の実装をarraylistの "Sort"メソッドに渡すことによって、arraylistを作成することによって解決しました。ありがとう。 – RKP