//crossjoin //{A,B} join {C,D} -> {AC, AD, BD, BD} public AcidCombination join(AcidCombination other) { return(new AcidCombination(list.SelectMany(x => other.list, (my, o) => my.add(o)))); }
public PrositeRegex(string regexRaw) { this.regexRaw = regexRaw; elements = regexRaw.Split('-').Select(RepeatedAcid.createRepeatedAminoAcid).ToList(); acidCombinations = allAcidCombinations(elements); }