public bool MatchManyTypes(IEnumerable<TypeSignature> types1, IEnumerable<TypeSignature> types2) { if (types1 == null && types2 == null) return true; if (types1 == null || types2 == null) return false; var types1Array = types1.ToArray(); var types2Array = types2.ToArray(); if (types1Array.Length != types2Array.Length) return false; for (int i =0; i < types1Array.Length; i++) { if (!MatchTypes(types1Array[i], types2Array[i])) return false; } return true; }