字典扩展


  字典扩展的类名为 DictionaryExtension,是对 IDictionary<TKey, TValue> 的扩展。

1、尝试添加

  TryAdd 方法首先会判断指定的 Key 是否存在,不存在则添加键值对。

[TestMethod]
public void TestTryAdd()
{
    var dict = new Dictionary<string, string> { { "1", "abc" }, { "2", "def" } };

    Assert.IsFalse(dict.TryAdd("1", "abc"));
    Assert.IsTrue(dict.TryAdd("3", "ghi"));
}

2、尝试获取

  TryGetValue 方法判断指定的 Key 是否存在,如存在则返回对应的值,否则使用 func 函数构造的值进行添加,并返回该值。

[TestMethod]
public void TestTryGetValue()
{
    var dict = new Dictionary<string, string> { { "1", "abc" }, { "2", "def" } };

    Assert.AreEqual("abc", dict.TryGetValue("1", () => "abc_1"));
    Assert.AreEqual("ghi_1", dict.TryGetValue("3", () => "ghi_1"));
}

3、添加或替换

  AddOrReplace 方法判断指定的 Key 是否存在,存在则使用指定的值进行替换,否则添加键值对。

[TestMethod]
public void TestTryGetValue()
{
    var dict = new Dictionary<string, string> { { "1", "abc" }, { "2", "def" } };

    dict.AddOrReplace("1", "abc_1");
    dict.AddOrReplace("3", "ghi_1");
    Assert.AreEqual("abc_1", dict["1"]);
    Assert.AreEqual("ghi_1", dict["3"]);
}