public static IEnumerableAsync <T> MaterializeAsync <T>(this IEnumerableAsync <XmlReader> source, IXmlMaterializer <T> materializer) => new MaterializeAsyncEnumerable <T>(source, x => (materializer.TryMaterialize(x, out T value), value));
public static IEnumerable <T> Materialize <T>(this IEnumerable <XmlReader> source, IXmlMaterializer <T> materializer) { foreach (XmlReader item in source) { if (materializer.TryMaterialize(item, out T value)) { yield return(value); } } }