public static Stream SearchWrappedStream(Stream stream, OssFunc <Stream, bool> condition) { WrapperStream wrapperStream = stream as WrapperStream; if (wrapperStream == null) { return(condition(stream) ? stream : null); } return(wrapperStream.SearchWrappedStream(condition)); }
public Stream SearchWrappedStream(OssFunc <Stream, bool> condition) { Stream baseStream = this; do { if (condition(baseStream)) { return(baseStream); } if (!(baseStream is WrapperStream)) { return(null); } baseStream = (baseStream as WrapperStream).BaseStream; } while (baseStream != null); return(baseStream); }