Nim*_*ral 0 c# initialization generic-list
我有一个初始化列表的例程......
var items = new List<TodoItem>();
//... load items from a REST service ...
return items;
Run Code Online (Sandbox Code Playgroud)
后续例程尝试枚举列表...
foreach (var i in items)
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果门户网站没有返回任何项目,则列表是,null并且枚举它的尝试失败......原因已经讨论过了.
直到现在我!= null在枚举前做了检查.现在我读了一篇SO帖子,有人建议null如果列表没有项目则返回是"不好的做法" .
如何将列表初始化为可以枚举的空列表,而不是让它成为null?我想到的唯一方法就是一个像这样的序列
var items = new List<TodoItem>();
items = Enumerable.Empty<TodoItem>()
Run Code Online (Sandbox Code Playgroud)
这不会编译:
无法将System.Collections.Generic.IEnumerable类型隐式转换为'System.Collections.Generic.List'.存在显式转换(您是否错过了演员?).
试图使用明确的演员......
items = (List<TodoItem>)Enumerable.Empty<TodoItem>();
Run Code Online (Sandbox Code Playgroud)
失败并出现运行时异常"无效转换"
Anybode可以建议我如何正确初始化我的列表吗?
var items = new List<TodoItem>();
Run Code Online (Sandbox Code Playgroud)
创建一个空列表.完成.
如果你这样做并且它最终存在null,那么你的代码将其设置为null并且你没有显示该代码.也许它与你的"从REST服务加载项目"代码有关?
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |