为了账号安全,请及时绑定邮箱和手机立即绑定

C# 初始化列表,所以如果没有添加项目,则不为空

C# 初始化列表,所以如果没有添加项目,则不为空

C#
红颜莎娜 2021-06-04 15:07:01
我有一个初始化列表的例程......var items = new List<TodoItem>();//... load items from a REST service ...return items;随后的例程尝试枚举列表......foreach (var i in items){    // ...}如果门户没有返回任何项目,则列表是null,并且尝试枚举它失败......原因已经讨论过。直到现在我!= null在枚举之前做了一个检查。现在我读了一篇 SO 帖子,其中有人建议null在列表没有项目的情况下返回是“不好的做法” 。如何将列表初始化为可以枚举的空列表,而不是让它成为null?我想到的唯一方法是像这样的序列var items = new List<TodoItem>();items =  Enumerable.Empty<TodoItem>()这不会编译:无法将类型 System.Collections.Generic.IEnumerable' 隐式转换为 'System.Collections.Generic.List'。存在显式转换(您是否缺少演员表?)。尝试使用显式转换...items = (List<TodoItem>)Enumerable.Empty<TodoItem>();因运行时异常“无效转换”而失败任何人都可以建议我如何正确初始化我的列表吗?
查看完整描述

1 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

var items = new List<TodoItem>();

创建一个空列表。完毕。

如果您正在执行此操作并且结果为null,则您的代码将其设置为null并且您尚未显示该代码。也许它与您的“从 REST 服务加载项目”代码有关?


查看完整回答
反对 回复 2021-06-05
  • 1 回答
  • 0 关注
  • 188 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信