Extension methods for both ICollection and IReadOnlyCollection
问题 I want to write an extension method (e.g. .IsEmpty() ) for both ICollection and IReadonlyCollection interfaces: public static bool IsEmpty<T>(this IReadOnlyCollection<T> collection) { return collection == null || collection.Count == 0; } public static bool IsEmpty<T>(this ICollection<T> collection) { return collection == null || collection.Count == 0; } But when I use it with classes implemeting both interfaces, I obviously get the ‘ambiguous invocation’. I don't want to type myList.IsEmpty