VisualHg.VisualHgSolution.GetProjectItemIds C# (CSharp) Méthode

GetProjectItemIds() private static méthode

private static GetProjectItemIds ( IVsHierarchy hierarchy, uint itemId ) : IEnumerable
hierarchy IVsHierarchy
itemId uint
Résultat IEnumerable
        private static IEnumerable<uint> GetProjectItemIds(IVsHierarchy hierarchy, uint itemId)
        {
            var items = new Queue<uint>();

            if (hierarchy != null)
            {
                items.Enqueue(itemId);
            }

            while (items.Count > 0)
            {
                uint item = items.Dequeue();

                yield return item;

                item = GetItemFirstChild(hierarchy, item);

                if (item == VSConstants.VSITEMID_NIL)
                {
                    continue;
                }

                if (ItemHasChildren(hierarchy, item))
                {
                    items.Enqueue(item);
                }
                else
                {
                    yield return item;
                }

                while (TryGetItemNextSibling(hierarchy, item, out item))
                {
                    if (item == VSConstants.VSITEMID_NIL)
                    {
                        break;
                    }

                    if (ItemHasChildren(hierarchy, item))
                    {
                        items.Enqueue(item);
                    }
                    else
                    {
                        yield return item;
                    }
                }
            }
        }