4개의 좋아요
IEnumerable<T> 와 ICollection<T> 차이가 항상 궁금했는데
실제 사용의 차이보다는 의미적 차이가 더 크군요.
3개의 좋아요
제가 해석하기로는
IEnumerable<T>는 Iterator로만 사용한다 의 성격이 강하고,
ICollection<T>는 IEnumerable<T>의 확장된 집합이라 (당연히) 위의 기능도 되지만
Collection 특유의 기능이 추가된 거라고 보는게 맞지 않나 싶었습니다.
그리고 유심히 보시면 IEnumerable<out T> 이기 때문에 Covariant가 가능하지만
ICollection<T>는 out 키워드가 없어서 그런 식으로는 쓰지 못한다고 봤습니다.
아무래도 항목이 계속 바뀌기 때문에 Type 보장을 해야 해서 그런 게 아닐까 싶지만요.
2개의 좋아요