System.Reflection.Module.FindTypes C# (CSharp) Method

FindTypes() public method

public FindTypes ( TypeFilter filter, Object filterCriteria ) : Type[]
filter TypeFilter
filterCriteria Object
return Type[]
        public virtual Type[] FindTypes(TypeFilter filter,Object filterCriteria)
        {
            StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
            Type[] c = GetTypesInternal(ref stackMark);
            int cnt = 0;
            for (int i = 0;i<c.Length;i++) {
                if (filter!=null && !filter(c[i],filterCriteria))
                    c[i] = null;
                else
                    cnt++;
            }
            if (cnt == c.Length)
                return c;
            
            Type[] ret = new Type[cnt];
            cnt=0;
            for (int i=0;i<c.Length;i++) {
                if (c[i] != null)
                    ret[cnt++] = c[i];
            }
            return ret;
        }