在这里,我试图获取用户的Outlook属性。
如果一个用户拥有某些财产并正在检索该财产。
如果另一个用户没有属性,则此代码终止。
result.Properties["postalcode"][0];
某些用户的索引结果超出范围,因为此属性不可用。 但是
result.Properties["displayName"][0];
该属性可用于该用户。
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"][0];
excelSheet.Cells[i, 10].Value =result.Properties["displayName"][0];
对于没有Outlook属性的邮政编码的人来说,可以读取显示名称并跳过邮政编码的属性。
答案 0 :(得分:2)
可以使用是否存在检查值的条件。
if (result.Properties["postalcode"] != null && result.Properties["postalcode"].Count() > 0)
{
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"][0];
}
答案 1 :(得分:0)
您可以使用空条件:
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"]?[0];
技巧是["postalcode"]
之后的问号。它是一种语法糖,可以代替
if(result.Properties["postalcode"]!=null)
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"][0];
else
excelSheet.Cells[i, 9].Value = null;
更新:如果您需要返回某些值而不是null,则需要使用null运算符。例如。如果您需要插入“”而不是null,则它看起来像
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"]?[0]??"";
替换
if(result.Properties["postalcode"]!=null)
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"][0];
else
excelSheet.Cells[i, 9].Value = "";
还有另一种情况:如果excelSheet.Cells[i, 9].Value
中有某个值,则要保留它并使用单线。比你可以做的魔术
excelSheet.Cells[i, 9].Value = result.Properties["postalcode"]?[0]??excelSheet.Cells[i, 9].Value;