์ ๊ฑฐ ๋๊ฐ ๋จธ์?
enumย ์ด๊ฑฐํ์ด๋ ๊ด๊ณ์ ์ด?
์ฝ๋ฃจํด ์ธ๋ ์ฌ์ฉํ๋๋ฐ IEnumerable
๊ตฌ์ฒด์ ์ผ๋ก์ค๋ช ์
์ ๊ฑฐ ๋๊ฐ ๋จธ์?
enumย ์ด๊ฑฐํ์ด๋ ๊ด๊ณ์ ์ด?
์ฝ๋ฃจํด ์ธ๋ ์ฌ์ฉํ๋๋ฐ IEnumerable
๊ตฌ์ฒด์ ์ผ๋ก์ค๋ช ์
์กด๋ ์ด๋ ค์ด ์ง๋ฌธ์ด๋ค ์บฌ... ์ด๊ฑฐ ์ปค๋ฒ๋ฆฌ์ง๊ฐ ๋๋ฌด ๋์. (๋๋ ๋ค ๋ชจ๋ฆ)
๊ฐ๋จํ ์ค๋ช ํ๋ฉด IEnumerable ์ '์ ์ ์๋๋ฐ ์ด๋๊น์ง ์ธ์๋์ง ์ ์ ์๋' ๊ฒ์.
IEnumerable ๋ IEnumerator(์ด๊ฑฐ์) ๋ฅผ ๋ฐํํ๋ IEnumerable.GetEnumerator() ํจ์๋ฅผ ๊ฐ์ง.
list, array, ๋ฑ์ ์๋ฃํ์ ๋ค ienumerable ๋ก ํ๋ณํ ํด์ ๋ฐ์ ์ ์์.
์ด๊ฑธ ์ด์ฉํด์ ๋งํ๊ฐ ๋์๊ฐ๋๊ฑฐ๊ณ ์ ๋ํฐ ์ฝ๋ฃจํด๋ ์ด๊ฑฐ ํ์ฉํ๋๊ฑฐ. (๊ทผ๋ฐ ์ ๋ํฐ ์ฝ๋ฃจํด์ ์ ๋ฏ์ด๋ด์ ์ด๊ฑฐ์๋ฅผ ์ด๋ป๊ฒ ์ฐ๋์ง ๋ชฐ๊ฒ ์จ...ใ ใ )
https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.ienumerable?view=netframework
๊ทผ๋ฐ ์๊ธฐ๊ฒ๋ enum ์ด๋์ ๋ณ ์๊ด์ด ์์. ๊ทธ๋์ enum์ ienumerable๋ก ๋ฐ๊ฟ ์ฐ๋ ค๋ฉด ์์์ ์ผ๋ก ๋ฐ๊ฟ์ค์ผ ํจ.
https://stackoverflow.com/questions/19909596/convert-from-enum-to-ienumerable/19909671
๋จผ๋ง์ธ์ง ์ ๋ชฐ๊ฒ์ด;
http://www.csharpstudy.com/CSharp/CSharp-yield.aspx
ํน์ c++ stl ์์ ๋ค๋ฉด iterator(๋ฐ๋ณต์)๋ ๋น์ทํ ์ญํ ์ํฉ๋๋ค
์ด๋ ๊ฒ ์๊ฐํ๋ ๋ ์ด๋ ค์ด๋ฐ์?
std::vector<int> array; array.begin();
c# ์์
https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.list-1.getenumerator?view=netframework-4.8
์ฌ์ฉ์ ๋ ๋ฒจ์์ ๋ณด๋ฉด ํ๋์ผ์ด ๋๋ฌด๋ฌ๋ผ์ ์ ์ ํ ์ค๋ช ์ด ์๋๊ฑฐ๊ฐํ์ฉ
์์ ๋ง์ while๋ฌธ์ ๊ตฌํํ๋ค๊ณ ์๊ฐํ๋ฉด ํธํด
๋ค๋ง ienumerable์ C#์์ ๊ณตํต์ ์ผ๋ก ์ฐ์ด๋ ๋ฐ๋ณต์๊ณ ์ ๋ํฐ๋ ๊ฑ ๋จ์์ด ๊ทธ๋ฐ ์ด์ ๋๋ฌธ์ ํํ๊ฑฐ๊ฐ๊ณ
IEnumerator๋ ๋ฐ๋ณต๋ฌธ ํธ์ถ ๊ฐ๋ฅํ ๊ฐ์ฒด ์ฆ IEnumerable์ ๊ตฌํํ๊ณ ์๋ ๊ฐ์ฒด์ ๊ตฌ์ฒด์ ์ธ ๋ฐ๋ณต์ ๋ก์ง์ ๊ตฌํํ๋ ์ธํฐํ์ด์ค๊ณ