private IEnumerable <T> GetChildren(List <byte> bytes) { var t = new T(); return(t switch { byte _ => bytes.Cast <T>(), AviMainHeader _ => new List <AviMainHeader>() { AviMainHeader.GetAviMainHeader(bytes) }.Cast <T>(), AviStreamHeader _ => new List <AviStreamHeader>() { AviStreamHeader.GetAviStreamHeader(bytes) }.Cast <T>(), _ => null, });
/// <summary> /// Constructs and intializes a new instance of <see /// cref="AviVideoStream" /> with a specified stream header. /// </summary> /// <param name="header"> /// A <see cref="AviStreamHeader"/> object containing the /// stream's header. /// </param> public AviVideoStream(AviStreamHeader header) : base(header) { }
/// <summary> /// Constructs and intializes a new instance of <see /// cref="AviAudioStream" /> with a specified stream header. /// </summary> /// <param name="header"> /// A <see cref="AviStreamHeader"/> object containing the /// stream's header. /// </param> public AviAudioStream(AviStreamHeader header) : base(header) { }