從你的問題來看,我不太清楚你想要達到的目標。下面是一些你缺少一些類,闡明你的意圖測試,我想介紹你嘗試什麼......
[TestFixture]
class GameTests
{
[Test]
public void AddKeyValuePair()
{
var levelProgress = new Dictionary<int, KeyValuePair<string, int>>();
KeyValuePair<string, int> storedValue;
if (levelProgress.TryGetValue(1, out storedValue))
{
Assert.Fail("shouldn't get here");
}
else
{
levelProgress[1] = new KeyValuePair<string, int>("something", 1);
}
Assert.IsTrue(levelProgress.ContainsKey(1));
Assert.IsTrue(levelProgress[1].Equals(new KeyValuePair<string, int>("something", 1)));
}
[Test]
public void UpdateKeyValuePair()
{
var levelProgress = new Dictionary<int, KeyValuePair<string, int>>
{
{1, new KeyValuePair<string, int>("something", 1)}
};
KeyValuePair<string, int> storedValue;
if (levelProgress.TryGetValue(1, out storedValue))
{
//any operation
levelProgress[1] = new KeyValuePair<string, int>("newness", 100);
}
else
{
Assert.Fail("shouldn't get here");
}
Assert.IsTrue(levelProgress.ContainsKey(1));
Assert.IsTrue(levelProgress[1].Equals(new KeyValuePair<string, int>("something", 2)));
}
}
但是,它真的感覺(和元組/ KeyValuePairs常提示本我) 。
例如這是一個猜測...
class Game
{
private Dictionary<int, LevelProgress> levelsProgress;
LevelProgress GetLevel(int i);
}
class LevelProgress
{
void AddProgress;
}
您是否收到錯誤?向我們展示你如何「增加進度」。你是不是已經把'pair'傳遞給了它?如果你將其添加到字典中已存在的條目中,則會遇到問題,因爲如果它存在,它會滿足「if」。 – 2014-09-12 09:56:36
我無法將新的鍵值對分配給存儲值。 (編譯器錯誤) – Andre 2014-09-12 09:57:59
'KeyValuePair'是一個結構,你不能修改它。 –
2014-09-12 09:58:01