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>();
如果你的数组是空的,这会给你一个空列表。
嗨,我有一个名为 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>();
如果你的数组是空的,这会给你一个空列表。