enum example
{
A = 1,
B = 2,
C = 5,
D = 6,
E = 8
}
์ด๋ผ๋ ์ด๊ฑฐํ์ด ์์
์ด ์ด๊ฑฐํ์ ๋ฆฌ์คํธ์ ํต์์ ์ผ๋ก ๋ฃ๊ฒ ๋๋ฉด
list[0] = a
list[1] = b
list[2] = c
list[3] = d
list[4] = e
๊ฐ ๋ ๊ฑฐ์์?
๊ทธ๋ฐ๋ฐ enum์ ์ ๊ฐ๋ค์ ๋ง์ถฐ์ list์ ๋ฐฐ์ ํ๊ณ ์ถ์ผ๋ฉด ์ด๋ป๊ฒ ์ ์ธํด์ผํจ?
list[0] = null
list[1] = 1
list[2] = 2
list[3] = null
list[4] = null
list[5] = 5
list[6] = 6
list[7] = null
list[8] = 8
์ด๋ฐ ํํ๋ก ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ์ฝ๋ ์ง๊ณ ์ถ์๋ฐ ์๋ง ์๊ฐํด๋ ๋ชจ๋ฅด๊ฒ ์
++
ย ย class Class1
ย ย {
ย ย ย ย public static List<int> Listd = new List<int>();
ย ย ย ย public enum example : int
ย ย ย ย {
ย ย ย ย ย ย A = 1,
ย ย ย ย ย ย B = 2,
ย ย ย ย ย ย C = 5,
ย ย ย ย ย ย D = 6,
ย ย ย ย ย ย E = 8
ย ย ย ย }
ย ย ย ย static void Main(string[] args)
ย ย ย ย {
ย ย ย ย ย ย for (int i = 0; i < Enum.GetValues(typeof(example)).Length; i++)
ย ย ย ย ย ย {
ย ย ย ย ย ย ย ย Listd[i] = (int)(example)i;
ย ย ย ย ย ย ย ย Console.WriteLine(Listd[i].ToString());
ย ย ย ย ย ย }
ย ย ย ย }
ย ย }
๋ณธ๋ฌธ ์์ ํ์ ๊ฐ๋จํ๊ฒ ํ ์คํธํ๊ณ ๋๋ฉด์ ๋ณธ ํ๋ก์ ํธ๋ก ์ฎ๊ธฐ๋ ค๊ณ ํ๋๋ฐ ์๋ ธ๋๋ค
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
๊ทธ๋ผ ์ผ์ผํ ๋ฃ์ด์ค์ผํจ? ์๋ฅผ๋ค์ด list aaa ๊ฐ ์์ผ๋ฉด ๋ฌด์กฐ๊ฑด aaa[0] = example.A ์ด๋ฐ์์ผ๋ก?
์ด์ง ์ดํด๊ฐ ์๊ฐ์ ๊ทธ๋ฌ๋๋ฐ i๊ฐ ์ฆ๊ฐ๊น์ง๋ ์๊ฒ ๋ค๋ง (example)ํ์ i๋ฅผ ์ฐ๋ผ๋๊ฑฐ์?? ์ด๋ค ์ฝ๋๋ชจ์์ด ๋๋์ง ๋จธ๋ฆฟ์์์ ์๊ทธ๋ ค์ง
ใ ใ as ์ฐ๋๊ฑด ์๊ณ ์์๋๋ฐ ์บ์คํ ์ ๋ ๊ฒ ๋๋๊ฑด ๋ชฐ๋๋ค ๊ณ ๋ง๋ค ํ๋ฒ ํด๋ณด๊ณ ์๋๋ฉด ๋ฝ๋ฝ์ชฝ ํด์ค๊ฒ
as๊ฐ ์๋จ ใ ใ
๋ณธ๋ฌธ์์ ํด๋์
์์ฌ ์ฝ๋์ validEnumValues = Enum.GetValues(typeof(example)) maxValueInEnumValues = max(validEnumValues) // List initialization for (uint idx = 0; idx <= maxValueInEnumValues; ++idx): list.append(null); for (uint idx = 0; idx < validEnumValues.Length; ++idx): list[validEnumValues[idx]] = validEnumValues[idx]
์ด๊ฑฐ์ ๊ฐ๋ค์ด 0 ์ด์์ธ ์ ์๊ฐ(unsigned integer)์ธ ๊ฒฝ์ฐ์๋ง ์ฑ๋ฆฝํจ. ๋ง์ฝ์ underlying value๊ฐ ์์์ธ ๊ฒฝ์ฐ๋ ํ์ฉํ๋ค๋ฉด, ์์ ์ฝ๋์์ minimum underlying value์ ์ ๋ ๊ฐ์ผ๋ก [min underlying value(<0), max underlying value] -> [0, max underlying value + abs(min underlying value)]๋ก ๋งตํ ํด์ค์ผํด
ํ..์ด๋ฐ๊ฐ ํด๋ณด๊ณ ๋ต๊ธ๋ฌ๊ฒ ์ค๋์ ๋จธ๋ฆฌ์ํ์ ์ข ์ฌ์ด๊ฐ์ง๊ณ
maxValueInEnumValues = max(validEnumValues) ์ด๋ถ๋ถ ์ดํด๊ฐ ์๊ฐ์๊ทธ๋ฌ๋๋ฐ max(); ์ ๊ฑฐ๋ ๋ญ using ํด์ผํจ?
๋ฆฌ์คํธ์์ ์ต๋๊ฐ
์์ฌ์ฝ๋๋ผ ๋งํด์คฌ๋๋ฐ ๋ญ using ํด์ผํ๋์ง ๋ฌผ์ด๋ณด๋ฉด..