This past week, I've found myself writing alot of methods with the following pattern:
IEnumerable<T> DoSomething(IEnumerable<T> stream);
Then I use C#'s wonderful new iterator syntax to manipulate the stream, or simply intercept and process the data. I've found this wonderfully useful for alot of the statistical type algorithms that I implement for our project. It's been especially cool to combine this with a bit of reflection for creating "dynamic filters" based on user input. All of a sudden, all your algorithms are incredibly flexible with very little effort.
The beauty of this pattern is that it can be chained. Obviously, there is a practical limit here, but I've found it extremely useful and I thought I'd share it for those who haven't stumbled across this concept before.
Now, if we could only create iterators using anonymous delegates, then I would proceed to drown in my own drool.
[UPDATE] fixed title grammar. Sorry if that pops it back up in your aggregators, RSS readers.
Remember Me
Page rendered at Monday, October 06, 2008 9:04:47 PM (Pacific Standard Time, UTC-08:00)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.