One thing I sometimes miss is an interface between IEnumerable<T> and ICollection<T> that represents a read-only collection (implements IEnumerable<T>) with a Count-property. Something like this:
public interface IReadOnlyCollection<T>
: IEnumerable<T>
{
int Count { get; }
}