There are a number of different way to accomplish the same simple loop though the items of an object in c#.
This has made me wonder if there is any reason be it pe
In regards to the final bit of the question, "Did I miss any?" yes and I feel i would be remiss to not mention here even though the question is quite old. While those four ways of doing it will execute in relatively the same amount of time their is a way not shown above that runs faster than all of them, quite significantly in fact as the size of the list that is being iterated over increases. It would be the exact same way as the last method but instead of getting .Count in the condition check of the loop you assign this value to variable before setting up the loop and use that instead, leaving you with something like this
var countVar = list.Count;
for(int i = 0; i < countVar; i++)
{
//loop logic
}
by doing it this way your only looking up a variable value at each iteration, rather than resolving the Count or Length properties, which is considerably less efficient.