C# int[]의 활용

김도현·2023년 9월 5일
0

TIL

목록 보기
34/76

int[]을 string[]으로 전환

첫 번째 방법 - .Select().ToArray();

int[] numbers = { 1, 2, 3, 4, 5 };
string[] result = numbers.Select(i => i.ToString()).ToArray();

foreach문으로 int에 받을려고 하면 string 형식이여서 받을 수 없다고 뜬다.

제대로 string에 받아 돌리면

타입이 string이라고 뜬다.

두 번째 방법 Array.ConvertAll();

int[] numbers = { 1, 2, 3, 4, 5 };
string[] result = Array.ConvertAll(numbers, i => i.ToString());

세 번째 방법 for문

int[] numbers = { 1, 2, 3, 4, 5 };
string[] result = new string[numbers.Length];
for (int i = 0; i < numbers.Length; i++)
{
    result[i] = Convert.ToString(numbers[i]);
    // 또는 result[i] = numbers[i].ToString();
}

int[] 특정 인덱스부터 자르는 방법

Select().Where();

int[] numbers = { 1, 1, 2, 3, 4, 2, 6, 7, 8, 4, 10 };
int[] result = new int[numbers.Length];
result =numbers.Select((n, i) => i >4 ? n : -99).Where(x => x >= 0).ToArray();

Select에서 인덱스쪽에 조건을 걸어 값은 변경해준 다음에 Where로 변경된 값을 삭제하여 저장하는 형태이다.

이와 비슷하게 만약 문자열 배열일 경우

 string[] digits = { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
 var shortDigits = digits.Where((digit, index) => digit.Length < index);

로 출력된다.

Array.Copy();

int[] numbers = { 1, 1, 2, 3, 4, 2, 6, 7, 8, 4, 10 };
int[] result = new int[numbers.Length];
Array.Copy(numbers,4, result, 0, 3);

첫번째 파라미터는 소스가 될 값(복사할 값)
두번째 파라미터는 복사 시작위치
세번째 파라미터는 저장할 변수
네번째 파라미터는 저장할 시작위치
다섯번째 파라미터는 갯수 입니다.

만약에 4번째 값을 2로 변경시키면

와 같은 형태로 저장됩니다.

Skip().Take();

int[] numbers = { 1, 1, 2, 3, 4, 2, 6, 7, 8, 4, 10 };
int[] result = numbers.Skip(4).Take(3).ToArray();

Skip에 시작위치를 Take에 갯수를 적으시면 됩니다.

ArraySegment<T>

 int[] numbers = { 1, 1, 2, 3, 4, 2, 6, 7, 8, 4, 10 };
 int[] result = new ArraySegment<int> (numbers , 4, 3).ToArray ();

첫번째 파라미터에는 소스가 될 값
두번째 파리미터에는 복사 시작위치
세번째 파라미터에는 갯수를 입력하시면 됩니다.

List의 GetRange

이 방법은 배열을 리스트로 변경한 다음 복사 후 배열로 변경시키는 방법이다.

int[] numbers = { 1, 1, 2, 3, 4, 2, 6, 7, 8, 4, 10 };
int[] result = numbers.ToList().GetRange(4,3).ToArray();

첫번째 파라미터에는 복사 시작위치
두번째 파라미터에는 갯수를 입력하시면 됩니다.

0개의 댓글