static IEnumerable <Box> ImageProperties( uint primaryId, uint[] secondary, ItemPropertyAssociationBox associations, IList <Box> props) { return(DirectProperties(primaryId, associations, props) .Concat( (from associationBox in associations.Entries.Where(i => secondary.Contains(i.ItemId)) from propIndex in associationBox.Properties let i = props.ElementAt(propIndex.Index - 1) where i is DecoderConfigurationBox || i is ColorInformationBox select i) .Distinct()));
static IEnumerable <Box> DirectProperties(uint primaryId, ItemPropertyAssociationBox associations, IList <Box> props) { return(from associationBox in associations.Entries.Where(i => i.ItemId == primaryId) from propIndex in associationBox.Properties select props.ElementAt(propIndex.Index - 1)); }