我有一些 LINQ 代码可以从符合特定命名约定的 PDF 中提取书签(使用 Aspose.Pdf):
IOrderedEnumerable<Bookmark> magicBookmarks = (
from bookmark in allBookmarks.AsEnumerable()
where bookmark.Title.StartsWith(MAGIC_PHRASE)
// ... other criteria
orderby bookmark.PageNumber ascending
select bookmark
);
该类Bookmark
有一个名为的属性PageNumber
,用于获取书签开始的页码。在我的情况下,书签可以代表 1...n 页的一部分。
我想做的是将此序列转换为另一个序列Tuple<int, int>
(或一些可比较的“对”结构),其中每对的 Item1 等于PageNumber
源序列中相应元素的值,Item2 等于源序列中的下一个元素减 1(为了本练习,假设源序列中的所有书签在从中提取它们的文档中连续出现)。
简而言之,我希望最终结果是一系列对,代表每个带书签的 PDF 部分的开始页和结束页。