Ejemplo n.º 1
0
        public T Find <T>(FindQueryFunc <T> queryFunc = null) where T : class
        {
            var tObj = this as T;

            if (tObj != null && (queryFunc == null || queryFunc(tObj) == true))
            {
                return(tObj);
            }

            if (content == null)
            {
                return(null);
            }

            foreach (var obj in content)
            {
                var nestedResult = obj.Find(queryFunc);
                if (nestedResult != null)
                {
                    return(nestedResult);
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        public List <T> FindAll <T>(FindQueryFunc <T> queryFunc = null) where T : class
        {
            var found = new List <T> ();

            FindAll(queryFunc, found);

            return(found);
        }
Ejemplo n.º 3
0
        void FindAll <T>(FindQueryFunc <T> queryFunc, List <T> foundSoFar) where T : class
        {
            var tObj = this as T;

            if (tObj != null && (queryFunc == null || queryFunc(tObj) == true))
            {
                foundSoFar.Add(tObj);
            }

            if (content == null)
            {
                return;
            }

            foreach (var obj in content)
            {
                obj.FindAll(queryFunc, foundSoFar);
            }
        }