调试IEnumerable方法

Jam*_*xon 24 c# debugging ienumerable

我有一个方法返回一个IEnumerable<T>,我正在尝试调试该方法内的代码.

每次我在调试期间单步执行Visual Studio中的代码时,它都会跳过相关方法.

当我在方法中放置一个断点时,它永远不会被击中.代码肯定在运行,因为我已经通过yield return方法中的假T来测试.

是不可能以这种方式调试IEnumerable方法,还是我做错了什么?

BFr*_*ree 51

当您使用IEnumerable中的项目时,该方法才会被触发.请记住,IEnumerable延迟加载项目,所以只是因为你正在调用返回IEnumerable的方法,并不意味着该方法实际上在那时被调用.如果您希望在调用它时将其命中,请在方法调用结束时添加ToList():

var result = myEnumerableMethod().ToList();
Run Code Online (Sandbox Code Playgroud)