ハッシュテーブルを辞書に変換する方法について多くの質問と回答がありますが、どのように辞書をハッシュテーブルに変換できますか?Dictionary <>をC#のHashtableに変換するには?
答えて
最も簡単な方法は、Hashtableのコンストラクタを使用することです。
var dictionary = new Dictionary<object, object>();
//... fill the dictionary
var hashtable = new Hashtable(dictionary);
やりたいために、かなり珍しいようだが、最も簡単で、これを試してみてください
var hash = new Hashtable();
foreach(var pair in dictionary) {
hash.Add(pair.Key,pair.Value);
}
これを 'ToHashTable'拡張メソッドに含めて、今すぐ! – Dismissile
同じことをする[コンストラクタ](http://msdn.microsoft.com/en-us/library/kdkta2sx.aspx)もあります。 – Joey
これは私がやっていたことです。あまりにも明白なやり方があるのか疑問に思っていました。しかし、ありがとう! – jpints14
Dictionary<int, string> dictionary = new Dictionary<int, string>
{
{1,"One"},
{2,"Two"}
};
Hashtable hashtable = new Hashtable(dictionary);
(ない珍しいなど「道具が平等のチェックではなく、型指定されていない平等のチェックを入力しない」と仮定した場合)
あなたはIEqualityComparer
パラメータを取るHashtable
コンストラクタのオーバーロードを使用して検討する必要があります。このように
var hashtable = new Hashtable(dictionary, (IEqualityComparer) dictionary.Comparer);
は、あなたのHashtableは、辞書と同じComparer
を使用しています。たとえば、辞書で大文字と小文字を区別しない文字列キーを使用した場合、Hashtable
も大文字小文字を区別しないようにすることができます。例:
var d = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
d.Add("a", "a");
d.Add("b", "b");
bool found;
found = d.ContainsKey("A"); // true
var hashtable1 = new Hashtable(d);
var hashtable2 = new Hashtable(d, (IEqualityComparer) d.Comparer);
found = hashtable1["A"] != null; // false - by default it's case-sensitive
found = hashtable2["A"] != null; // true - uses same comparer as the original dictionary
- 1. クラスをDictionary <string、string>に変換する方法は?
- 2. Dictionary <int、Enumerable>をDictionary <int、Enumerable>に変換します。内容を反転する
- 3. XmlDocumentをDictionaryに変換する<string、string>
- 4. Collief.ToDictionary()を使用してDictionary <dynamic、dynamic>をDictionary <string、string>に変換する方法
- 5. Dictionary <string、object>を匿名オブジェクトに変換しますか?
- 6. Dictionary <string、Dictionary <string、object >>に項目を追加する方法は?
- 7. リスト<String>を辞書に変換するには<int,String>
- 8. JObjectをDictionary <string、object>に変換します。出来ますか?
- 9. オブジェクトをリストに変換するには<string> c#?
- 10. Linqのディクショナリ<int、Dictionary <int, Foo>>をIEnumerable <IEnumerable <Foo>>に変換する最も簡単な方法は?
- 11. '(User) - > Dictionary <String、String>'の値を予期した引数型に変換できません 'Dictionary <String、String>'
- 12. バインドリスト<Dictionary <string、string >> to DropDownList
- 13. C#HashSet <T>とDictionary <K,V>のような高速C++コンテナ?
- 14. リストを<MyObject>をDictionary <obj.string、List <obj.ID>>
- 15. C++のstd :: vectorをstd :: vector <unsigned char>に変換する
- 16. ArrayList <ArrayList<E>>をJavaのE [] []に変換する
- 17. Dictionary <string、string>を単一の集約文字列表現に変換する最適な方法は?
- 18. MongoDB serialize Dictionary <MyEnum、object>
- 19. List <Hashtable <String、List <String>>をIntentにブロードキャストするにはどうすればいいですか?
- 20. カスタムクラスをリストに変換する<>
- 21. linqの結果を辞書に変換する<string, int>
- 22. PHP XSLTをBRタグに変換する<br></br>
- 23. オプション<T>をストリーム<T>に変換する方法?
- 24. Func <T, String>をFuncに変換する<T, bool>
- 25. IList <T>をBindingListに変換する<T>
- 26. リストに<string>を変換する<string>()
- 27. JavaRDD <Row>をJavaRDDに変換する<Vector>
- 28. Scala seq <string>をJavaリストに変換する<string>
- 29. 配列<System :: Byte>をC++ CLRのchar *に変換するには?
- 30. リストから<T>のサブタイプに変換するには<T>
それはなぜ必要なのでしょうか?ハッシュテーブルは、キーで計算された値が値の場所を生成するという点で非常に特化しています...辞書は、まっすぐな(キー、値)コレクションです。なぜ辞書をハッシュテーブルに変換したいのですか? –
最も単純なレベルでは、私は怠惰です。 'Hashtable'型のオブジェクトは、多くの場所で使われています。 – jpints14
それ自体がそれを使用する理由ではありません。ディクショナリとハッシュテーブルは、異なる状況下で使用される異なる獣です。ご存じのように、リストは多くの場所で使用されています...だから、それを使わないのはなぜですか? :-s –