我有以下代码:

IList<object> testList = null;

...

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

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

最佳答案

好吧,你可以试试 ?? 操作符:

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/

10-10 20:08