私はDictionary<string, int>
を使用していますが、int
はキーのカウントです。
さて,Dictionaryに最後に挿入されたKeyにアクセスする必要がありますが,その名前がわかりません。わかりやすい試みとしては
int LastCount = mydict[mydict.keys[mydict.keys.Count]];
は動作しません。なぜなら Dictionary.Keys
は []インデクサーを実装していないからです。
似たようなクラスはないでしょうか?Stack を使うことも考えましたが、それでは文字列しか保存できません。自分で構造体を作って、Stack<MyStruct>
を使うこともできますが、他にも、基本的にはキーに[]インデクサーを実装したDictionaryを使うという方法があるのではないでしょうか?
これならいつでもできるでしょう。
string[] temp = new string[mydict.count];
mydict.Keys.CopyTo(temp, 0)
int LastCount = mydict[temp[mydict.count - 1]]
しかし、これはお勧めできません。最後に挿入されたキーが配列の最後に来るという保証はありません。MSDN]1のKeysの順序は不定であり、変更される可能性があります。私の簡単なテストでは、挿入順になっているようですが、最新のキーを知る必要がある場合は、ご提案のようにスタック(他の記述からは構造体の必要性を感じませんが)や単一変数キャッシュのような適切なブックキーピングを構築した方が良いでしょう。