public double Distance(NGram <Chord>[] first, NGram <Chord>[] second) { return(distance.Distance( first.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => z.Octave * 11 + (int)z.Note).ToArray(), second.SelectMany(x => x.SelectMany(y => y.Notes)).Select(z => (int)(z.Octave * 11 + (int)z.Note)).ToArray())); }