C# foreach 迭代器如何产生空引用

问题描述

考虑 C# 中的这些语句:

dropBoxWorkoutList

代码在执行 NullReferenceException 时返回,并在 VS2019 IDE 中查看显示变量“sample”的值为 null。同时,“channel.Data”不为空,有数千个数据点。

那么,问题是,如何将“sample”设置为 null 值?

解决方法

C# foreach interator 如何产生空引用

简单

channel.Data = new Sample[] { null,null,null };
foreach (var sample in channel.Data) {                                  
    if (sample.TimeStamp < placeholderMinLimit) 
        continue;
}

如果你想避免这种情况,只需过滤它

foreach ( var sample in channel.Data.Where( x => x != null) )
{   
    if (sample.TimeStamp < placeholderMinLimit) 
        continue;
}