using System.Collections.Generic; using System.Linq; using System.Xml.Linq; namespace CoverageFramework.Element.Selector { public class XElementRangeSelectorPipe : IXElementRangeSelector { private readonly IXElementRangeSelector _next; private readonly IXElementRangeSelector _prev; public XElementRangeSelectorPipe(IXElementRangeSelector prev, IXElementRangeSelector next) { _prev = prev; _next = next; } #region IXElementRangeSelector o public IEnumerable> Select(XElement root) { return _prev.Select(root) .SelectMany(block => block.SelectMany(e => _next.Select(e))); } #endregion } }