c# - 如何避免在 foreach IList 之前进行空检查

标签 c# null-check

我有以下代码:

IList<object> testList = null;

... 

if (testList != null) // <- how to get rid of this check?
{
   foreach (var item in testList)
   {
       //Do stuff.
   }
}

有没有办法避免 foreach 之前的if?我看到了一些解决方案,但是当使用 List 时,使用 IList 时有什么解决方案吗?

最佳答案

嗯,你可以试试??运算符(operator):

testList ?? Enumerable.Empty<object>()

我们得到 testList本身或一个空的 IEnumerable<object> :

IList<object> testList = null;

...

// Or ?? new object[0] - whatever empty collection implementing IEnumerable<object>
foreach (var item in testList ?? Enumerable.Empty<object>())
{
    //Do stuff.
}

关于c# - 如何避免在 foreach IList 之前进行空检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58952656/

相关文章:

java - 如何编写一个通用的 isEmpty 方法来检查是否为空?

java - 测试对象是否为空的通用代码?

c# - 如何使用c#关闭外部应用程序

c# - 更改发送给客户端的文件名?

c# - 来自 CSV 文件的 Linq-To-Excel,缺少小数点分隔符

c# - 了解 .NET Framework 中哪些方法返回 null 的简单方法

c - 在 C 中迭代链表时空检查行为不正确

c# - 在使用 IntPtr 构造函数进行单元重用时设置 Xamarin UITableViewCellStyle

c# - 如何将两个不同的字符串合并为一个字符串?

方法调用中的 C# 空检查链