>백엔드 개발 >C++ >LINQ를 사용하여 컬렉션을 하위 컬렉션으로 분할하려면 어떻게 해야 합니까?

LINQ를 사용하여 컬렉션을 하위 컬렉션으로 분할하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-20 04:01:09776검색

How Can I Split a Collection into Sub-Collections Using LINQ?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.