我对C#比较新,所以请耐心等待!如果字典中没有任何内容,我希望编写的代码抛出一个空引用。我必须将它作为字符串转换为字典返回一个对象:
string mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
我必须编写的代码来解决这个问题?
if (zimOrganisation.OrganizationFields.ContainsKey("main_director"))
{
mainDirectorsInZim = (string)zimOrganisation.OrganizationFields["main_director"];
}
else
{
mainDirectorsInZim = null;
}
我写这些内容并不是很少,而且似乎效率低下。有更好的方法吗?
答案 0 :(得分:6)
我尝试使用TryGetValue
方法稍微减少代码,但正如serhiyb在评论中指出的那样,由于必须将object
转换为{{1 }}
但这仍然会稍微提高效率。
string
OTOH,你可以将你的字符串初始化为string mainDirectorsInZim = null;
object tmp;
if (zimOrganisation.OrganizationFields.TryGetValue("main_director", out tmp))
{
mainDirectorsInZim = (string)tmp;
}
,并删除null
块,如果你碰巧发现它更容易理解,因为它更接近你现有的代码。
else