>백엔드 개발 >C++ >LINQ를 사용하여 컬렉션을 (거의) 동일한 크기의 하위 집합으로 분할하려면 어떻게 해야 합니까?

LINQ를 사용하여 컬렉션을 (거의) 동일한 크기의 하위 집합으로 분할하려면 어떻게 해야 합니까?

Linda Hamilton
Linda Hamilton원래의
2025-01-20 03:46:09543검색

How Can I Split a Collection into Subsets of (Nearly) Equal Size Using LINQ?

LINQ를 사용하여 컬렉션을 하위 집합으로 분할

LINQ를 사용하면 컬렉션을 지정된 수의 하위 집합으로 나눌 수 있습니다. 분할과 달리 마지막 하위 집합은 다른 하위 집합과 다른 수의 요소를 가질 수 있습니다.

이를 달성하기 위해 간단한 LINQ 확장 방법을 사용할 수 있습니다.

<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>

이 방법을 사용하면 마지막 하위 집합의 크기가 서로 다를 수 있도록 하면서 컬렉션을 하위 컬렉션으로 나눌 수 있습니다. 위의 코드는 인덱스 모듈로 하위 집합 수를 기반으로 요소를 그룹화하고 효과적으로 다른 하위 집합에 할당함으로써 이를 수행합니다.

위 내용은 LINQ를 사용하여 컬렉션을 (거의) 동일한 크기의 하위 집합으로 분할하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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