static List <T> Find <T>(FunctionPointerGeneric <T> func, IEnumerable <T> source) { List <T> resultList = new List <T>(); //IEnumerator<T> _iterator= source.GetEnumerator(); // try // { // while (_iterator.MoveNext()) // { // T item = _iterator.Current; // if (func(item)) // { // resultList.Add(item); // } // } // } // finally // { // _iterator.Dispose(); // } foreach (T item in source) { if (func.Invoke(item)) { resultList.Add(item); } } return(resultList); }
static List <T> Find <T> (FunctionPointerGeneric <T> func, T[] source) { List <T> resultList = new List <T>(); for (int i = 0; i < source.Length; i++) { if (func.Invoke(source[i])) { resultList.Add(source[i]); } } return(resultList); }