LINQ를 사용하여 컬렉션을 하위 컬렉션으로 나누기
컬렉션을 더 작은 부분으로 나누는 것은 일반적인 프로그래밍 작업입니다. LINQ(Language Integrated Query)를 사용하면 간단한 확장 방법으로 이를 달성할 수 있습니다.
세트를 N개로 나누기
확장 메소드 Split
는 컬렉션과 원하는 부품 수를 입력으로 받고 하위 컬렉션을 나타내는 IEnumerable<IEnumerable>
을 반환합니다. 이 알고리즘은 현재 인덱스를 부품 수로 나눌 때 나머지를 기준으로 요소를 부품으로 나눕니다.
구현:
<code class="language-csharp">static class LinqExtensions { public static IEnumerable<IEnumerable<T>> Split<T>(this IEnumerable<T> list, int parts) { int i = 0; var splits = from item in list group item by i++ % parts into part select part.AsEnumerable(); return splits; } }</code>
사용법:
Split
메서드는 모든 IEnumerable
컬렉션에 사용할 수 있습니다. 예를 들어 숫자 목록을 세 부분으로 나누려면 다음과 같이 하세요.
<code class="language-csharp">var numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var parts = numbers.Split(3);</code>
이렇게 하면 각각 원본 목록의 하위 집합이 포함된 3개의 IEnumerable
컬렉션이 포함된 IEnumerable
이 반환됩니다.
<code>部分1:{ 1, 4, 7 } 部分2:{ 2, 5, 8 } 部分3:{ 3, 6, 9 }</code>
위 내용은 LINQ를 사용하여 컬렉션을 하위 컬렉션으로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!