>백엔드 개발 >C++ >.NET은 한 목록에 다른 목록의 모든 요소가 포함되어 있는지 확인하는 기본 제공 방법을 제공합니까?

.NET은 한 목록에 다른 목록의 모든 요소가 포함되어 있는지 확인하는 기본 제공 방법을 제공합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-01 01:14:18548검색

Does .NET Offer a Built-in Way to Check if One List Contains All Elements of Another?

.NET에는 하나의 목록에 다른 목록의 모든 항목이 포함되어 있는지 확인하는 내장 방법이 있습니까?

문제:

목록에 다음이 포함되어 있는지 확인하는 메서드(ContainsAllItems)가 있습니다. 목록의 모든 요소 b. 이 기능이 이미 .NET에 내장되어 있어 작업이 중복될 가능성이 있는지 궁금합니다.

답변:

예, .NET 3.5 이상에서는 수행원 메서드:

public static class LinqExtras
{
    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)
    {
        return !b.Except(a).Any();
    }
}

사용법:

List<int> a = new List<int>() { 1, 2, 3, 4 };
List<int> b = new List<int>() { 2, 3 };

bool result = a.ContainsAllItems(b); // True

이 메서드는 b와 a 사이의 차이 집합(b.Except(a))을 수행하여 다음을 반환합니다. a에 없는 b의 요소. 그런 다음 Any() 메서드를 사용하여 집합 차이에 요소가 있는지 확인하고 결과를 반전하여 a가 b의 모든 항목을 포함하는지 확인합니다.

참고:

원래 ContainsAllItems 메서드도 유효한 솔루션이지만 LINQ를 사용하는 접근 방식보다 효율성이 약간 떨어집니다. LINQ 버전은 지연 평가를 활용하므로 목록에 항목 수가 많은 경우 잠재적으로 작업 수행량이 줄어듭니다.

위 내용은 .NET은 한 목록에 다른 목록의 모든 요소가 포함되어 있는지 확인하는 기본 제공 방법을 제공합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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