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

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

DDD
リリース: 2024-12-30 13:52:14
オリジナル
322 人が閲覧しました

Does .NET Offer a Built-in Function to Check if One List Contains All Items from Another?

リスト a にリスト b のすべての項目が含まれているかどうかを確認する組み込み関数が .NET にありますか?

この質問の目的は次のとおりです。 .NET が、あるリストに別のリストのすべての要素が含まれているかどうかを確認する組み込み機能を提供しているかどうかを判断します。

提供されているサンプル コードは、2 番目のリストを反復処理し、各要素が最初のリストに存在するかどうかを確認することで、この目的を達成しようとします。このアプローチは機能しますが、そのような機能が .NET 内にすでに存在するかどうかは疑問です。

回答:

.NET バージョン 3.5 以降では、そのような機能は実際に利用可能です。 :

public static bool ContainsAllItems<T>(List<T> a, List<T> b)
{
    return !b.Except(a).Any();
}
ログイン後にコピー

このコードは、リスト b の要素とリスト a の要素を比較し、すべての要素がリスト a の要素である場合にのみ true を返します。 b は a にも存在します。

代替実装:

より従来的な実装では、メソッドをジェネリックとして宣言し、IEnumerable を受け入れる必要があります。特定の型 (List) の代わりに:

public static class LinqExtras
{
    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)
    {
        return !b.Except(a).Any();
    }
}
ログイン後にコピー

このアプローチを使用すると、次を使用して、あるリストに別のリストのすべての要素が含まれているかどうかを簡単に確認できます:

IEnumerable<int> a = new List<int> { 1, 2, 3, 4 };
IEnumerable<int> b = new List<int> { 2, 4, 6, 8 };

bool containsAll = a.ContainsAllItems(b);  // False
ログイン後にコピー

以上が.NET には、あるリストに別のリストのすべての項目が含まれているかどうかを確認する組み込み関数が提供されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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