ホームページ > バックエンド開発 > C++ > .NET には、あるリストに別のリストのすべての要素が含まれているかどうかを確認する組み込みの方法が提供されていますか?

.NET には、あるリストに別のリストのすべての要素が含まれているかどうかを確認する組み込みの方法が提供されていますか?

Susan Sarandon
リリース: 2025-01-01 01:14:18
オリジナル
532 人が閲覧しました

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

.NET には、あるリストに別のリストのすべての項目が含まれているかどうかを確認する組み込みメソッドがありますか?

問題:

List かどうかを決定するメソッド (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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート