示例#1
0
 static private IEnumerator ForEachImpl <T>(T[] inElements, Routine.IndexedElementOperation <T> inOperation)
 {
     for (int i = 0; i < inElements.Length; ++i)
     {
         inOperation(i, inElements[i]);
         yield return(null);
     }
 }
示例#2
0
        /// <summary>
        /// Executes an operation on each element in an array, additionally passing in the element index.
        /// </summary>
        static public AsyncHandle ForEach <T>(T[] inElements, Routine.IndexedElementOperation <T> inOperation, AsyncFlags inFlags = AsyncFlags.Default)
        {
            if (inElements == null || inElements.Length == 0 || inOperation == null)
            {
                return(AsyncHandle.Null);
            }

            return(Schedule(ForEachImpl <T>(inElements, inOperation), inFlags));
        }
示例#3
0
        static private IEnumerator ForEachImpl <T>(IEnumerable <T> inElements, Routine.IndexedElementOperation <T> inOperation)
        {
            int idx = 0;

            foreach (var element in inElements)
            {
                inOperation(idx++, element);
                yield return(null);
            }
        }