목록을 지정된 크기의 하위 목록으로 분할
이 글에서는 목록을 지정된 크기의 하위 목록으로 분할하는 방법을 소개하고 두 가지 효율적인 방법을 제공합니다.
방법 1: 확장 방법 사용
다음 코드는 확장 메서드를 통해 목록 분할을 구현하는 방법을 보여줍니다.
<code class="language-csharp">public static class ListExtensions { public static List<List<T>> ChunkBy<T>(this List<T> source, int chunkSize) { return source .Select((x, i) => new { Index = i, Value = x }) .GroupBy(x => x.Index / chunkSize) .Select(x => x.Select(v => v.Value).ToList()) .ToList(); } }</code>
사용법: 목록의 ChunkBy
메소드를 직접 호출하여 필요한 블록 크기를 매개변수로 전달합니다. 예를 들어, 18개 요소 목록을 5개 요소로 구성된 청크로 분할합니다.
<code class="language-csharp">List<List<int>> chunks = myList.ChunkBy(5);</code>
결과는 각각 5개의 요소를 포함하는 4개의 하위 목록 목록이 됩니다.
방법 2: 루프 사용
또 다른 방법은 간단한 루프를 사용하는 것입니다.
<code class="language-csharp">public static List<List<T>> SplitList<T>(List<T> list, int chunkSize) { List<List<T>> chunks = new List<List<T>>(); while (list.Count > 0) { List<T> chunk = new List<T>(chunkSize); for (int i = 0; i < chunkSize && list.Count > 0; i++) { chunk.Add(list[0]); list.RemoveAt(0); } chunks.Add(chunk); } return chunks; }</code>
이 메서드는 목록과 원하는 청크 크기를 인수로 받아들이고, 새 목록 목록을 생성하고, 입력 목록을 반복하면서 입력 목록이 빌 때까지 각 새 하위 목록에 chunkSize
요소를 추가합니다.
두 가지 방법 모두 목록을 지정된 크기의 하위 목록으로 효과적으로 분할할 수 있습니다. 특정 요구사항과 코딩 스타일에 가장 적합한 방법을 선택하세요.
위 내용은 목록을 정의된 크기의 더 작은 하위 목록으로 효율적으로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!