下面的代码行基于 RowIndex 对 IEnumerable 执行 FirstOrDefault 搜索,但在调试窗口(在 Watch、Quick watch 和 Immediate 窗口中)中不起作用。它会在这些窗口中引发 System.NullReferenceException。我正在使用 Visual Studio 2015 更新 3。
sheetdata.Descendants<Row>().FirstOrDefault(p => p.RowIndex.Value == 2U)
但是当我将它转换为列表并进行相同的搜索时,它可以在这些调试窗口中工作。为什么会出现这种差异?
sheetdata.Descendants<Row>().ToList().FirstOrDefault(p => p.RowIndex.Value == 2U)
当我运行代码时,这种差异不存在。只有当我尝试在这些调试窗口中调试代码时,我才能看到这种差异。