私はDICTIONARY<STRING,STRING>
という形式の辞書を持っており、その中に5つの要素の値があります。私が必要とする出力は、辞書に新しい要素を格納したい場合、自動的に最後の要素の前の位置に格納されます。どうやってやるの?Cの辞書のN番目の位置に値を格納
答えて
あなたは簡単にこのように任意の項目を編集することがあります。
Dictionary<string,string> dic = new Dictionary<string,string>();
dic.Add("a", "A value");
dic.Add("b", "B value");
dic["a"] = "new A value";
あなたがリストを使用順序とインデックスを使用したい場合:もちろん
public class Item
{
public string Key;
public string Value;
}
List<Item> items = new List<Item>();
items.Add(new Item { Key = "a", Value = "A Value" });
items.Add(new Item { Key = "b", Value ="B Value" });
items[1] = new Item { Key = "c", Value = "C value" };
をこのケースでは、あなたがその重複したキーを持つことができます重複するキーを避けたい場合は、自分で確認する必要があります。
私のコードのリスト部分にエラーがありました。私はちょうどそれを修正した。それを見てください。 –
問題の代替ソリューション。良い提案 – Everyone
@AmmarSalmanありがとう –
辞書の内部での格納方法を指定することはできません。それはハッシュテーブルの下にあり、ハッシュテーブルはハッシュに基づいて動作します。
質問をより明確にすることはできますか?要素の格納先をもっと心配している場合は、配列を使用することができます(キーが心配されていない場合)。
明らかに、ディクショナリの仕組みが分かりません。 ディクショナリは、多数のインデックスを持つハッシュ関数に基づいています。キーに基づいて、値は辞書のどこかに配置されます。
例えば、5つの要素の辞書は、このようにすることができ:
[0] - > "エレメント1"
[1] - >
[2] - >
[3] - > "エレメント2" "エレメント5"
[4] - > "要素3"
[5] - > "element4"
これに基づいて、 "最後"要素の前に何かを保存することは意味がありません。 「最後の」要素はありません。この例では、element4
より前にはelement5
が格納されていますが、これは辞書で使用されるハッシュ関数のためです。辞書を反復処理すると、挿入した順番とは異なる結果になります。
EDIT:私が正しく理解していれば、instance[key]
と同時に呼び出すことができるデータ構造が必要であり、同時にリストとして反復することができます。 key
は文字列なので、そのようなデータ構造は存在できません。また、文字列キーから期待通りの順序を作る方法がありません。ハッシュ関数が何であっても動作しません。任意のハッシュテーブル(または辞書)で、(key1/value1)を次に(key2/value2)に追加すると、は、key1とkey2の両方が同じテーブルエントリにハッシュされていない限り、同じ要素の順序を取得します。
要するに、ディクショナリに格納されているアイテムの順序に基づいてアルゴリズムを構築することはできません。順序は、ハッシュ関数とインデックステーブルサイズによって異なります。
- 1. N番目の位置にある文字を置換する
- 2. tkinter OptionMenuの辞書値(辞書の値はリスト)にアクセスし、変数に格納
- 3. Python辞書でn番目のキーを抽出しますか?
- 4. 辞書のクエリの結果を格納
- 5. 辞書を使用してC#のメソッドに値を格納する方法
- 6. オブジェクトに辞書の値を格納できません
- 7. RecyclerViewのn番目の項目のx/y位置を取得する
- 8. 辞書とその位置
- 9. plistに格納される辞書の整数値
- 10. Python、辞書をデータフレーム内に格納
- 11. 辞書をセッションに格納する
- 12. ネストされた辞書の値を格納する方法
- 13. for-loop in R、n番目とn番目の+ 1を置き換えます。
- 14. リンクリストのn番目の位置にノードを挿入する方法
- 15. n番目の親に対する要素の位置を取得する
- 16. 同じ項目の2つを辞書に格納する方法
- 17. 辞書からの位置によるキー値の取得
- 18. Bash n番目のコマンド置換?
- 19. 2番目の位置にリストを挿入するC++
- 20. ソケットオブジェクトを格納するPython辞書
- 21. n番目の位置に新しい列を追加するJavascript
- 22. 各N番目の値を返すイテレータ
- 23. Bash:ファイルのn番目の行のテキストをn番目のインデックスの配列に置き換えます。
- 24. C#ある辞書から別の辞書に値を置き換える
- 25. C++でのキー値格納
- 26. アクティブリストノードの項目を2番目の位置にプル
- 27. ネストされた辞書の値のN番目の要素を切り取ります
- 28. n番目の「無効な親値」エラー
- 29. n番目の項目
- 30. は、N番目の区切り文字の後に値を置き換え
ディクショナリでは、その要素の順序は定義されていません。あなたの実際の目標が何であるかを明確にし、希望する出力を持つサンプルを表示するための投稿を歓迎します。 –
http:// stackoverflowを参照できます。Dictionaryが内部でどのように定義されているかを知るために、この質問が内部的に保持されているhow-the-the-the-questions/1600606あなたの目標について言えば、代替の解決策があるかもしれません。辞書はいかなる命令をも意図していない。 – Vijay
[KeyedCollection](https://msdn.microsoft.com/en-us/library/ms132438(v = vs.110).aspx)は、必要な処理を行う可能性があります。 –
Joe