/// <summary> /// 增加到工作流的头部,moveTask用于控制当已经存在key的时候,是否将它移动到头部 /// </summary> public void AddFirst(string key, CoroutineAcion coroutineAcion, bool replaceAction = true, bool moveTask = false) { if (m_CoroutineMap.ContainsKey(key)) { if (replaceAction) { m_CoroutineMap[key] = coroutineAcion; } if (moveTask) { coroutineAcion = m_CoroutineMap[key]; m_CoroutineMap.Remove(key); m_CoroutineMap.AddFirst(key, coroutineAcion); } } else { m_CoroutineMap.AddFirst(key, coroutineAcion); } }
public static void TestLastKey() { LinkedDictionary <int, bool> linked = new LinkedDictionary <int, bool>(); linked.Add(1, false); Assert.AreEqual(linked.LastKey, 1); linked.Add(2, true); Assert.AreEqual(linked.LastKey, 2); linked.Remove(1); Assert.AreEqual(linked.LastKey, 2); linked.AddFirst(3, false); Assert.AreEqual(linked.LastKey, 2); linked.Add(4, true); Assert.AreEqual(linked.LastKey, 4); linked.Remove(3); Assert.AreEqual(linked.LastKey, 4); linked.Remove(4); Assert.AreEqual(linked.LastKey, 2); linked.Remove(2); }
public static void TestFirstKey() { LinkedDictionary <int, char> linked = new LinkedDictionary <int, char>(); linked.Add(1, 'a'); Assert.AreEqual(linked.FirstKey, 1); linked.Add(2, 'b'); Assert.AreEqual(linked.FirstKey, 1); linked.Remove(1); Assert.AreEqual(linked.FirstKey, 2); linked.AddFirst(3, 'c'); Assert.AreEqual(linked.FirstKey, 3); linked.Add(4, 'd'); Assert.AreEqual(linked.FirstKey, 3); linked.Remove(3); Assert.AreEqual(linked.FirstKey, 2); linked.Remove(2); Assert.AreEqual(linked.FirstKey, 4); linked.Remove(4); }