internal static class FilterService
{
internal static IEnumerable<TableElement> FilterStructureElements(
IEnumerable<PdfStructureElement> elements,
Func<PdfStructureElement, bool> predicate,
int parentId = 0)
{
foreach (var element in elements)
{
// If the current element passes the predicate, yield it as a TableElement with the current parentId
if (predicate(element))
{
yield return element.ToTableElement(parentId);
parentId = element.Order;
}
// Recursively filter children, passing the current parentId to them
foreach (var child in FilterStructureElements(element.ChildElements, predicate, parentId))
{
yield return child;
}
}
}
}
internal static class FilterService
{
internal static IEnumerable<TableElement> FilterStructureElements(
IEnumerable<PdfStructureElement> elements,
Func<PdfStructureElement, bool> predicate,
int parentId = 0)
{
foreach (var element in elements)
{
// If the current element passes the predicate, yield it as a TableElement with the current parentId
if (predicate(element))
{
yield return element.ToTableElement(parentId);
parentId = element.Order;
}
// Recursively filter children, passing the current parentId to them
foreach (var child in FilterStructureElements(element.ChildElements, predicate, parentId))
{
yield return child;
}
}
}
}