Search code examples
c#ms-wordbookmarks

Ordering bookmarks by page using microsoft interop c#


I have a template word file composed by 2 pages, each page has a bookmark, the first page bookmark name is A4 and the second page bookmark name is A3, but when I read all bookmarks from the word document I get them in alphabetical order, I want them in page order, how can i do this?

foreach (Bookmark bookMark in MergeResultDoc.Bookmarks) 
            {//IMPORTANTE:IL NOME DEL SEGNALIBRO DEVE ESSERE IL TIPO DI CARTA
                pagInizio = Convert.ToInt32(pagNum);
                pagNum = bookMark.Range.Information[WdInformation.wdActiveEndPageNumber].ToString();
                addData( pagInizio, pagNum, bookMark.Name);
                iteration++;
            }

Solution

  • Use LINQ OrderBy:

    var orderedResults = MergeResultDoc.Bookmarks.OrderBy(d => d.Start).ToList();