Index & Range
C# 8.0์์์ Index.
1. "^"์ ๊ฐ๋ . (Index fromEnd ์ ๋จ์ถ ํ๊ธฐ๋ฒ)
์๋์ ๋ฐฐ์ด์ด ์๋ค๊ณ ๊ฐ์ ํ์ ๋..
int a = [1,2,3,4,5,6,7];
int b = a[^2];
^ => ๋ค์์ ๋ถํฐ ์์๋ฅผ ์ผ๋ค. ๋จ ์ด๋๋ ์ ๋ก ๋ฒ ์ด์ค๊ฐ ์๋
์ฆ ์คํํ๋ฉด b = 6 ์ด ๋์จ๋ค.
2. Index ๊ฐ์ฒด
c# 8.0๋ถํฐ๋ Index๋ ๊ฐ๋ ์ด ์๊ฒผ๋ค.
์ญ์ ๊ฐ์ฒด๋ผ ์๋์ ๊ฐ์ด ์ ์ธ์ด ๊ฐ๋ฅํ๋ค
Index idx = new Index(2);
ex)
string a = "abcdefg";
int idx1 = 2;
Index idx2 = new Index(2);
char c1 = a[idx1];
char c2 = a[idx2];
๋ ๋ค ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
c1 = c
c2 = c
๊ทธ๋ผ Index๋ฅผ ์ฐ๋ ์ด์ ๊ฐ ๋ญ๊น? Index ๊ฐ์ฒด๋ int๋ก ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ์ ๋ ๊ฐ๋ง ๋ณด๊ดํ๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ ๊ฐ, ๋ฐฉํฅ์ฑ์ ๋ณด๊ดํ๋ค.
* Index ์ ์ธ ์ ๋ ๋ฒ์งธ ์ธ์๋ฅผ true๋ก ์ฃผ๋ฉด ^ ์ ๊ฐ์ด ๋ค์์ ์์๋ฅผ ์ผ๋ค.
ex ) new Index(2, fromEnd : true)
Index ๊ฐ์ฒด ๋ง๋๋ ๋ฐฉ๋ฒ
1. new ์ฌ์ฉ
Index indx1 = new Index(3);
2. ์ ์ ๋ฉ์๋ ์ฌ์ฉ
Index indx 1= Index.FromStart(3);
3. ๋จ์ถ ํ๊ธฐ๋ฒ ์ฌ์ฉ
Index idx1 = 3;
Index idx2 = ^3;
์ค์ ์์๋ ์๋ฌด๋๋ 3๋ฒ์ด ๊ฐ์ฅ ๋ง์ด ์ฐ์ด์ง ์์๊น? ใ ใ
3. Range
c# 8.0๋ถํฐ Range ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ฐ ์ฌ์ฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
* ๋ฐฐ์ด์ ".." ์ ์ฌ์ฉํ ์ ์๋ค.
int[] arr = {1,2,3,4,5,6} ์ด๋ ๋ฐฐ์ด์ด ์๋ค๊ณ ๊ฐ์ ํ๋ฉด..
Ex )
int[] arr2 = arr[1..^2];
=> 2,3,4,5
Ex2)
Range r1 = new Range(new Index(1), new (1,true));
int [] arr2 = arr[r1];
=> 2,3,4,5,6