首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToList() - ArgumentNullException处理

ToList() - ArgumentNullException处理
EN

Stack Overflow用户
提问于 2017-09-13 04:29:34
回答 3查看 9.3K关注 0票数 6

嗨,我有个课叫活动,

在窗体上,我将其对象数组创建为,

代码语言:javascript
复制
 Activity[] _actList; 

然后做这个,

代码语言:javascript
复制
List<Activity> termsList = _actList.ToList<Activity>();

因为_actiList是空的,所以它会抛出ArgumentNullException

所以我的问题是,

我如何处理这个异常?

还是有一个工作,以获得相同的功能?

请帮帮忙!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-09-13 04:31:49

在调用ToList之前,需要检查null

代码语言:javascript
复制
var termsList = _actList == null ? null : _actList.ToList(); 

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

代码语言:javascript
复制
var termsList = _actList?.ToList(); 

您也可以捕获异常,但在本例中我不建议这样做,特别是如果数组是null的常见场景

票数 11
EN

Stack Overflow用户

发布于 2017-09-13 04:38:38

通过分配空的默认数组,可以确保数组永远不为空。

代码语言:javascript
复制
Activity[] _actList = new Activity[] { };

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

票数 0
EN

Stack Overflow用户

发布于 2017-09-13 04:43:21

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

代码语言:javascript
复制
try {
    List<Activity> termsList = _actList.ToList<Activity>();
}
catch(ArgumentNullException){

}

如果默认值为null,则可以使用set?接线员:

代码语言:javascript
复制
List<Activity> termsList = (_actList ?? new Employee[] { }).ToList<Activity>();

如果数组为空,这将为您提供一个空列表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46188867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档