Hi LevelUp. I recently found your channel and I enjoy your videos. You cheated a bit with the performance by setting the list's capacity during ToList_Custom. This way you avoid expanding the internal array, but you are actually allocating a larger array than you need since the filtered items are fewer than the total count. Although that is sometimes fine to do if you want to sacrifice memory for cpu, it isn't consistent with the other implementations, including the for loop.
I am curious in what projects you worked and where it was useful to you because in my opinion it looks like constructing a combine for a 1m x 1m field The most what you told I already know, but probably I will share your video because it's easier to understand than my "potato talk" xD
I'm working in Big Data + NLP. The former needs absolute performance and the latter needs acceptable performance and flexibility, and this is an excellent candidate to have fast LINQ 🙂
Where? In the example set or adding yield to one of the existing examples? We can add a yield version too :) For existing examples, I didn't want to pay the cost of creating a state machine that could capture variables by accident. For simple state management, yield return is fine, but I avoid this pattern when I can since I've seen a lot of performance problems using yield and not understanding what it tries to accomplish with respect to user code.