하나의 리스트를 두개의 리스트로 분리하거나, n개의 리스트로 나누는 방법을 소개합니다.
1. GetRange()로 리스트 분리
List.GetRange(index, count)
는 리스트의 Index에서 count 개수만큼 요소들을 가져와서 새로운 리스트로 리턴합니다.
아래와 같이 하나의 리스트를 두개의 리스트로 분리할 수 있습니다.
GetRange(0, 3)
: Index 0에서 3개 요소를 리스트로 리턴GetRange(3, 4)
: Index 3에서 4개 요소를 리스트로 리턴
using System;
namespace Example {
public class Program {
public static void Main(string[] args) {
List<string> list = new List<string>() {"a", "b", "c", "d", "e", "f", "g"};
List<string> splitList1 = list.GetRange(0, 3);
List<string> splitList2 = list.GetRange(3, 4);
Console.WriteLine(string.Join(", ", splitList1));
Console.WriteLine(string.Join(", ", splitList2));
}
}
}
Output:
a, b, c
d, e, f, g
2. GetRange()으로 n개의 리스트로 나누기
아래 예제에서 직접 구현한 SplitList(list, size)
함수는 list의 요소를 size 개수로 나눈 새로운 리스트들을 리턴합니다.
예를 들어, 아래와 같이 길이가 7인 리스트를 2개씩 나눈다면, 길이가 2인 리스트가 3개 만들어지고 길이가 1인 리스트가 한개 생성됩니다.
using System;
namespace Example {
public class Program {
public static List<List<string>> SplitList(List<string> list, int size) {
List<List<string>> result = new List<List<string>>();
for (int i = 0; i < list.Count; i += size) {
result.Add(list.GetRange(i, Math.Min(size, list.Count - i)));
}
return result;
}
public static void Main(string[] args) {
List<string> list = new List<string>() {"a", "b", "c", "d", "e", "f", "g"};
List<List<string>> result = SplitList(list, 2);
// show results
for (int i = 0; i < result.Count; i++) {
List<string> splitList = result.ElementAt(i);
Console.WriteLine(string.Join(", ", splitList));
}
}
}
}
Output:
a, b
c, d
e, f
g
Loading script...
Related Posts
- C# 바이트(Byte) 배열을 문자열로 변환
- C# String.format() 함수 알아보기
- C# - foreach (Array, List, Dictionary)
- C# 프로퍼티(Property) Get/Set 함수
- C# - Dictionary에서 key, value 가져오기
- C# - Dictionary 순회, foreach, for 루프
- C# - Dictionary에서 key, value 삭제
- C# - Dictionary.add()로 데이터 추가
- C# - Dictionary 선언 및 초기화
- C# - 문자열을 Double, Float으로 변환
- C# - 문자열을 리스트로 변환
- C# - 두 날짜/시간 비교, DateTime.Compare()
- C# - 날짜 계산, DateTime 시간 더하기 빼기
- C# - 날짜 문자열을 DateTime으로 변환
- C# - Sleep, 몇 초간 지연시키기
- C# - Timestamp(millisecond)를 DateTime 객체로 변환
- C# - 현재 시간 가져오기, DateTime
- C# - 문자열 리스트를 문자열로 변환
- C# - 리스트 복사 (얕은 복사, 깊은 복사)
- C# - 2차원 리스트 선언 및 초기화
- C# - 리스트 선언 및 초기화
- C# - 리스트 길이, 크기 가져오기
- C# - 리스트 합계, 평균 계산
- C# - 리스트 요소 제거 (RemoveAt, RemoveAt, RemoveAll)
- C# - 리스트에서 빈 문자열, null 제거
- C# - 리스트 두개로 분리, n개로 나누기
- C# - 문자열 뒤집기, Reverse()
- C# - 2차원 배열 복사, Clone
- C# - 문자열 배열을 문자열로 변환
- C# - 2차원 배열 선언, 초기화 방법
- C# - 배열 길이, 2차원 배열 길이
- C# - 두개의 배열을 하나로 합치기
- C# - 배열 중복 요소 제거
- C# - 배열에서 특정 요소 제거
- C# - Int 배열 정렬 (오름차순, 내림차순)