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

时间:2015-09-01 07:22:35

标签: c#

            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”]时代码不会中断?

3 个答案:

答案 0 :(得分:2)

如果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 = "";
  ...
}

答案 1 :(得分:0)

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

settextsignal= pyqtSignal(str)

答案 2 :(得分:-1)

itemnumber = Convert.ToString(parameter.AuxProperty["art_nr"]);

这将处理NULL