public void GetOrUpdateTest() { var dict = new Dictionary <string, int> { { "a", 1 }, { "b", 2 } }; var rs = dict.GetOrUpdate("c", 3); Assert.AreEqual(3, rs); Assert.AreEqual(3, dict["c"]); var rs2 = dict.GetOrUpdate("a", 0); Assert.AreEqual(1, rs2); Assert.AreEqual(1, dict["a"]); var readOnlyDict = new ReadOnlyDictionary <string, int>(new Dictionary <string, int> { { "a", 1 }, { "b", 2 } }); Assert.ThrowsException <NotSupportedException>(() => readOnlyDict.GetOrUpdate("c", 3)); Assert.ThrowsException <ArgumentNullException>(() => readOnlyDict.AddOrUpdate(null, 3)); }