Пример #1
0
        public static IEnumerable <ISeed> Collapse(this SeedTree @this, ISeed parent, string source)
        {
            var parentSeed = new Seed(@this.Content, parent, source);

            yield return(parentSeed);

            foreach (var child in @this.Children)
            {
                foreach (var childSeed in child.Collapse(parentSeed, source))
                {
                    yield return(childSeed);
                }
            }
        }
Пример #2
0
        public static IEnumerable <ISeed> Collapse(this SeedTree @this, ISeed parent, string source)
        {
            var parentSeed = new Seed(@this.Content, parent, source);

            yield return(parentSeed);

            var seedsToProcess = new Stack <SeedTree>(@this.Children);

            while (seedsToProcess.Count != 0)
            {
                var childSeed = seedsToProcess.Pop();
                foreach (SeedTree childSeedTree in childSeed.Children)
                {
                    seedsToProcess.Push(childSeedTree);
                }
                yield return(new Seed(childSeed.Content, parentSeed, source));
            }
        }