티스토리 뷰

반응형

목차

     


    List 배열을 n개의 배열로 분할하는 방법

     

    코딩을 하다 보면 배열 한 개에서 특정 개수별로 쪼개서 여러 개의 배열로 분할하여 사용해야 하는 경우가 있습니다. 어떻게 하는지 헷갈려하시는 분들이 꽤 많은데요. 배열을 여러 개로 분할하는 방법에 대해서 알아보도록 하겠습니다.

     

     

     

     

    배열 선언하기

     

    일단 아래와 같이 105개의 값을 가지고 있는 배열이 있고

    배열을 10개 단위로 쪼개서 여러 개의 배열을 만들어야 한다고 가정해보도록 하겠습니다.

     

     

    List<int> list = new List<int>();
    
    for (int i = 1; i <= 105; i++)
    {
        list.Add(i);
    }

     

    10개 단위로 쪼개면 총 11개의 배열이 나와야 하겠죠?

     

     

     

     

    배열 자르기

     

    기존 배열을 10개 단위로 잘라서 새로운 배열에 잘라놓은 배열을 각각 저장하는 로직입니다.

     

     

    List<List<int>> lists = new List<List<int>>();
    
    for (int i = 0; i < list.Count; i+=10) 
    {
        lists.Add(list.GetRange(i, Math.Min(10, list.Count - i)));
    }

     

    10개씩 자르기 때문에 i가 10씩 증가하도록 설정했습니다.

    기존 배열을 Math 함수를 사용하여 10개씩 잘라서 새로운 배열에 Add 시켜줍니다.

     

     

     

     

    값 확인

     

    아래와 같이 코드를 작성하여 값이 잘 들어갔는지 콘솔로 결과를 확인해보도록 하겠습니다.

     

    for (int i = 0; i < lists.Count; i++)
    {
        string text = "";
    
        for (int j = 0; j < lists[i].Count; j++)
        {
            if (j > 0)
            {
                text += ", ";
            }
    
            text += lists[i][j].ToString();
        }
    
        Console.WriteLine((i + 1).ToString() + "번째 배열 값 : " + text);
    }

     

     

     

     

    정상적으로 잘 들어가는 것을 확인할 수 있습니다. 

     

     

     

     

    전체 코드

     

    이 로직은 특히 SQL의 IN 절을 사용할 때 값이 너무 많은 경우

     

    SQL이 정상적으로 작동하지 않기 때문에, 값을 여러 개로 쪼개서 사용할 때 유용합니다.

     

    아래는 전체 코드입니다.

     

    List<int> list = new List<int>();
    
    for (int i = 1; i <= 105; i++)
    {
        list.Add(i);
    }    
    
    List<List<int>> lists = new List<List<int>>();
    
    for (int i = 0; i < list.Count; i+=10) 
    {
        lists.Add(list.GetRange(i, Math.Min(10, list.Count - i)));
    }
    
    for (int i = 0; i < lists.Count; i++)
    {
        string text = "";
    
        for (int j = 0; j < lists[i].Count; j++)
        {
            if (j > 0)
            {
                text += ", ";
            }
    
            text += lists[i][j].ToString();
        }
    
        Console.WriteLine((i + 1).ToString() + "번째 배열 값 : " + text);
    }

     

     

     

     

    마무리

     

    이상 C#에서 List 배열을 n개로 분할하는 방법에 대해서 알아보았습니다. List 말고도 DataSet이나 HashTable 등 여러 가지 배열에서 응용할 수 있으니 익혀두시면 여러모로 쓸모가 많으실 겁니다.

     

     

     

    반응형

    '프로그래밍 & DB > C#' 카테고리의 다른 글

    C# - Class 상속 개념 쉽게 이해하기 - feat.롤  (0) 2022.06.17