Can someone explain how the LINQ functions Where(..) and FindAll(..) differ? They both seem to do the same thing...
The biggest difference to me is that .FindAll is also available in .Net 2.0. I don't always have the luxury to program in .Net 3.5, so I try to remember the 'native' methods of the .Net generic collections.
It happened several times that I implemented an already available List method myself because I couldn't LINQ it.
What I find handy in this case is that, using VS2008, I can use type inference and the lambda syntax. These are compiler features, not framework features. This means I can write this and still remain within .Net 2.0:
var myOddNums = myNums.FindAll(n => n%2==1);
But if you do have LINQ available, keeping the difference between deferred execution and immediate execution is important.