C# SortedDictionaryのItemをRemoveする簡単なメソッドを作っているのですが、For loopを回す回数のところにvar.Count(Itemは5つです)で設定するとループが3回で止まってしまいます。
###問題が発生しているコード
public static void RemoveDictionaryItem(SortedDictionary<int, Employee> var) { for (int i = 0; i <var.Count; i++) { var.Remove(i); } }
試しに
Console.WriteLine(var.Count);
で実行すると、ちゃんと「5」と表示されます。
###試したこと
Cast、Convert、var.Keys.Countすべて試しましたが結果は全て同じループが3回しか回りません。
for (int i = 0;i <Convert.ToInt32(var.Count); i++) もしくは for (int i = 0;i <(int)var.Count; i++) もしくは for (int i = 0;i <Convert.ToInt32(var.Keys.Count); i++)
ちなみにループに直接「5」とハードコードを入れると、ちゃんと最後まで回って削除してくれます。
public static void RemoveDictionaryItem(SortedDictionary<int, Employee> var) { for (int i = 0; i < 5; i++) { var.Remove(i); } }
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。