static private IEnumerator ForEachImpl <T>(T[] inElements, Routine.ElementOperation <T> inOperation) { for (int i = 0; i < inElements.Length; ++i) { inOperation(inElements[i]); yield return(null); } }
static private IEnumerator ForEachImpl <T>(IEnumerable <T> inElements, Routine.ElementOperation <T> inOperation) { foreach (var element in inElements) { inOperation(element); yield return(null); } }
/// <summary> /// Executes an operation on each element in an array. /// </summary> static public AsyncHandle ForEach <T>(T[] inElements, Routine.ElementOperation <T> inOperation, AsyncFlags inFlags = AsyncFlags.Default) { if (inElements == null || inElements.Length == 0 || inOperation == null) { return(AsyncHandle.Null); } return(Schedule(ForEachImpl <T>(inElements, inOperation), inFlags)); }