4๊ฐ์ ์ข์์
IEnumerable<T> ์ ICollection<T> ์ฐจ์ด๊ฐ ํญ์ ๊ถ๊ธํ๋๋ฐ
์ค์ ์ฌ์ฉ์ ์ฐจ์ด๋ณด๋ค๋ ์๋ฏธ์ ์ฐจ์ด๊ฐ ๋ ํฌ๊ตฐ์.
3๊ฐ์ ์ข์์
์ ๊ฐ ํด์ํ๊ธฐ๋ก๋
IEnumerable<T>๋ Iterator๋ก๋ง ์ฌ์ฉํ๋ค ์ ์ฑ๊ฒฉ์ด ๊ฐํ๊ณ ,
ICollection<T>๋ IEnumerable<T>์ ํ์ฅ๋ ์งํฉ์ด๋ผ (๋น์ฐํ) ์์ ๊ธฐ๋ฅ๋ ๋์ง๋ง
Collection ํน์ ์ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋ ๊ฑฐ๋ผ๊ณ ๋ณด๋๊ฒ ๋ง์ง ์๋ ์ถ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ฌํ ๋ณด์๋ฉด IEnumerable<out T> ์ด๊ธฐ ๋๋ฌธ์ Covariant๊ฐ ๊ฐ๋ฅํ์ง๋ง
ICollection<T>๋ out ํค์๋๊ฐ ์์ด์ ๊ทธ๋ฐ ์์ผ๋ก๋ ์ฐ์ง ๋ชปํ๋ค๊ณ ๋ดค์ต๋๋ค.
์๋ฌด๋๋ ํญ๋ชฉ์ด ๊ณ์ ๋ฐ๋๊ธฐ ๋๋ฌธ์ Type ๋ณด์ฅ์ ํด์ผ ํด์ ๊ทธ๋ฐ ๊ฒ ์๋๊น ์ถ์ง๋ง์.
2๊ฐ์ ์ข์์