, sysrpl wrote

ForEach(item, items)

 

 

Why do you have your own ForEach function, and not using st::for_each, or a range based for loop?  I'm guessing it's because the collections your linq operators return don't have iterators, and thus are not compatible with the Standard Template Library.  Doing that is the very opposite of being friendly since you've eliminated a good portion of standard C++.