ToList() - ArgumentNullException 处理

ToList() - ArgumentNullException Handling

嗨,我有一个名为 Activity、

的 class

在表单上,​​我将其对象数组创建为

 Activity[] _actList; 

然后这样做,

List<Activity> termsList = _actList.ToList<Activity>();

因为 _actiList 为 null,所以抛出 ArgumentNullException

所以我的问题是,

如何处理这个异常?
或者是否有解决方法来获得相同的功能?

请帮忙!

您需要在调用之前检查是否为 null ToList

var termsList = _actList == null ? null : _actList.ToList(); 

如果您使用的是 C# 6.0 或更高版本,您可以用更短的方式编写相同的代码:

var termsList = _actList?.ToList(); 

你也可以捕获异常,但我不建议在这种情况下,特别是如果数组是 null

您可以通过分配一个空的默认数组来确保数组永远不会为空。

Activity[] _actList = new Activity[] { };

因此,当初始化表单时,数组也将被初始化为一个空数组。如果您现在正在执行 .ToList() ,那么您将得到一个空列表而不是异常。

使用适用于任何此类问题的 try catch:

try {
    List<Activity> termsList = _actList.ToList<Activity>();
}
catch(ArgumentNullException){

}

或者您可以使用 ?? 设置一个默认值(如果它为 null)运算符:

List<Activity> termsList = (_actList ?? new Employee[] { }).ToList<Activity>();

如果你的数组是空的,这会给你一个空列表。