iTextSharp.text.pdf.SimpleBookmark.EliminatePages C# (CSharp) Метод

EliminatePages() публичный статический Метод

public static EliminatePages ( Object>.IList list, int pageRange ) : void
list Object>.IList
pageRange int
Результат void
        public static void EliminatePages(IList<Dictionary<String, Object>> list, int[] pageRange)
        {
            if (list == null)
                return;

            for (ListIterator<Dictionary<String, Object>> it = new ListIterator<Dictionary<string,object>>(list); it.HasNext();) {
                Dictionary<String, Object> map = it.Next();
                bool hit = false;
                if (map.ContainsKey("Action") && "GoTo".Equals(map["Action"])) {
                    String page = null;
                    if (map.ContainsKey("Page"))
                        page = (String)map["Page"];
                    if (page != null) {
                        page = page.Trim();
                        int idx = page.IndexOf(' ');
                        int pageNum;
                        if (idx < 0)
                            pageNum = int.Parse(page);
                        else
                            pageNum = int.Parse(page.Substring(0, idx));
                        int len = pageRange.Length & 0x7ffffffe;
                        for (int k = 0; k < len; k += 2) {
                            if (pageNum >= pageRange[k] && pageNum <= pageRange[k + 1]) {
                                hit = true;
                                break;
                            }
                        }
                    }
                }
                IList<Dictionary<String, Object>> kids = null;
                if (map.ContainsKey("Kids"))
                    kids = (IList<Dictionary<String, Object>>)map["Kids"];
                if (kids != null) {
                    EliminatePages(kids, pageRange);
                    if (kids.Count == 0) {
                        map.Remove("Kids");
                        kids = null;
                    }
                }
                if (hit) {
                    if (kids == null)
                        it.Remove();
                    else {
                        map.Remove("Action");
                        map.Remove("Page");
                        map.Remove("Named");
                    }
                }
            }
        }