我知道我可以将整个 foreach 循环包装在 if 语句中,但我想知道是否有一些对象文字值替换,new List<string>()
以便当 myList 为空时 foreach 跳过执行?在 Javascript 中,我可以简单地放在[]
一个合并之后来引用一个将停止 foreach 循环的空集。
List<string> myList = null;
foreach (var i in myList ?? new List<string>() )
i.Dump();
不会改变答案的不必要的背景信息:
List<Entity>()
是我来自 ASP.NET MVC 数据绑定的实际列表,所以我不控制创建它。我使用实体框架数据库模型 (POCO) 作为 Controller 方法的输入,就像您使用控制函数一样,设置函数的参数以将数据流向表。POCO 来自数据库,所以我也不控制它。
只是寻找某种空对象文字,我可以用来避免在不创建新对象的情况下运行循环。
我真的认为当 myList 为空时抛出异常是一个 C# 缺陷。如果它为空,则无事可做,因此应该跳过循环。