How do you get the index of the current iteration of a foreach loop?

后端 未结 30 2020
刺人心
刺人心 2020-11-22 07:05

Is there some rare language construct I haven\'t encountered (like the few I\'ve learned recently, some on Stack Overflow) in C# to get a value representing the current iter

30条回答
  •  青春惊慌失措
    2020-11-22 07:22

    Could do something like this:

    public static class ForEachExtensions
    {
        public static void ForEachWithIndex(this IEnumerable enumerable, Action handler)
        {
            int idx = 0;
            foreach (T item in enumerable)
                handler(item, idx++);
        }
    }
    
    public class Example
    {
        public static void Main()
        {
            string[] values = new[] { "foo", "bar", "baz" };
    
            values.ForEachWithIndex((item, idx) => Console.WriteLine("{0}: {1}", idx, item));
        }
    }
    

提交回复
热议问题