Using foreach with index in C#

Just a quick tip today! for and foreach loops are among the most useful constructs in a C# developer's toolbox. To iterate a collection, foreach is, in my opinion, more convenient than for in most cases. It works with all collection types, including those that are not indexable such as IEnumerable<T>, and doesn't require to access the current element by its index. But sometimes, you do need the index of the current item; this usually leads to one of these patterns: