List<T> myList๊ฐ€ ์žˆ์„๋•Œ



์ด๊ฒƒ์ €๊ฒƒ ํ•˜๋А๋ผ myList์— Add๋ฅผ ๋งŽ์ด ํ•ด์„œ ์‚ฌ์šฉํ–ˆ์Œ.



์ดํ›„์— ์ด์ œ myList ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ๊ฐœ๊ฐœ์ธ์˜ ๊ฐ์ฒด๋“ค์ด ํ•„์š”๊ฐ€ ์—†์–ด์ง.


๊ทผ๋ฐ myList์ž์ฒด๋Š” ๋˜ ์ƒˆ๋กœ์šด๊ฒƒ๋“ค์„ ๋„ฃ์–ด์•ผ๋˜์„œ ํ•„์š”ํ•จ.




์ด ์ƒํ™ฉ์—์„œ ๊ทธ๋ƒฅย 

1๋ฒˆย myList = new List<T>(); ํ•˜๋Š”๊ฒƒ๊ณผ

2๋ฒˆ myList๋ฅผ foreach๋ฌธ ๋Œ๋ ค์„œ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ๊ฐ์ฒด๋ฅผ myList.Remove(item) ํ•ด์„œ ๋‹ค์‹œ Count 0์งœ๋ฆฌ ๋ฆฌ์ŠคํŠธ ๋งŒ๋“œ๋Š”๊ฑฐ


๋‘˜์ค‘์— ๋ญ๊ฐ€ ์ข‹์€๊ฑฐ?


ํŽธํ•œ๊ฑด ๊ทธ๋ƒฅ 1๋ฒˆ์ธ๋ฐ ์œ ๋‹ˆํ‹ฐ GC ์ž‘๋™๋ฐฉ์‹์ดย ์•„๋ฌด๋„ ์ฐธ์กฐํ•˜์ง€์•Š๋Š”๊ฒƒ๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œ์‹œํ‚จ๋‹ค๊ณ  ์•Œ๊ณ ์žˆ๋Š”๋ฐ


๊ทธ๋Ÿผ GC๊ฐ€ ๊ฐ€๋™ํ•˜๊ธฐ ์ „๊นŒ์ง„ 1๋ฒˆ์—์„œ new ํ•ด๋ฒ„๋ ค์„œ ๋”์ด์ƒ ์•ˆ์“ฐ๋Š” ๊ทธ ์ „ ๋ฆฌ์ŠคํŠธ๋Š” ๊ณ„์† ์กด์žฌํ•œ์ฑ„๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋จน๊ณ ์žˆ๋Š”๊ฑด๊ฐ€ ํ•ด์„œ



์•„๋‹ˆ๋ฉด 2๋ฒˆ์œผ๋กœ ํ•ด๋ดค์ž ๊ฐ์ž์˜ ๊ฐ์ฒด๋“ค์ด ์–ด์ฐจํ”ผ Destroy๋œ๊ฒŒ ์•„๋‹ˆ๊ณ ์„œ์•ผ ๊ฐœ๊ฐœ์ธ์˜ ์ฐธ์กฐ๋งŒ ์—†์•ค๊ฑฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์—” ๋ณ„ ์ฐจ์ด๊ฐ€ ์—†๋‚˜?