安全通过键值对,即使值不存在

本文关键字:不存在 键值对 安全 | 更新日期: 2023-09-27 18:10:43

            string itemnumber = "";
            itemnumber = parameter.AuxProperty["art_nr"].ToString();
            if (itemnumber == "")
            {
                string[] pnp = parameter.Name.Split('_');
                itemnumber = pnp[pnp.Length - 1];
            }

这是我的代码。我想用键"art_nr"抓住 AuxProperty,并且按预期工作。但有时 AuxProperty["art_nr"] 不存在,因此代码会中断。我怎样才能以更好的方式做到这一点,以便在没有属性["art_nr"]时代码不会中断?

安全通过键值对,即使值不存在

如果AuxProperty实际上是字典,则如下所示:

//TODO: declare value actual type
SomeType value;
if (parameter.AuxProperty.TryGetValue("art_nr", out value)) {
  // value exists 
  itemnumber = value.ToString();
  ...
}
else {
  // No such value 
  itemnumber = "";
  ...
}

添加检查键值对中是否存在键:

itemnumber = parameter.AuxProperty.ContainsKey("art_nr")?parameter.AuxProperty["art_nr"].ToString():String.Empty;
itemnumber = Convert.ToString(parameter.AuxProperty["art_nr"]);

这将处理空值