1

我正在尝试从表单集合中获取数据:

foreach (string key in col.Keys)// where col is object of form collection
{
    if (col["ConstituntName[" + i + "]"].ToString() != null)
    { 
        UserRecordSubClass usr = new UserRecordSubClass();
        usr.Value = Convert.ToDecimal(col["ConstituntName[" + i + "]"]);
        usr.ConstituentNameId = Convert.ToInt32(col["ConstituntNameId[" + i + "]"]);
    }

    i++
}

但是当i2ConstituntName["+i+"]不存在时,它会抛出:

System.NullReferenceException。

在这种情况下如何防止这种异常?

4

2 回答 2

2

null打电话前检查一下.ToString()

if ( col["ConstituntName[" + i + "]"] != null 
     && col["ConstituntName[" + i + "]"].ToString() != null)
于 2019-12-28T13:12:03.063 回答
0

您可以使用null 条件运算符

if (col["ConstituntName[" + i + "]"]?.ToString() != null)

如果col["ConstituntName[" + i + "]"]或被评估为 null,则 null 条件运算符被评估col["ConstituntName[" + i + "]"].ToString()为 null

于 2019-12-28T13:28:13.177 回答