Rumah >pembangunan bahagian belakang >C++ >Adakah .NET Menawarkan Cara Terbina dalam untuk Memeriksa sama ada Satu Senarai Mengandungi Semua Item daripada Yang Lain?
Menentukan sama ada Senarai .NET mengandungi semua elemen yang lain senarai adalah tugas biasa. Seseorang mungkin menganggap bahawa fungsi tersebut terbina dalam rangka kerja. Artikel ini mengkaji sama ada ini berlaku dan menyediakan pendekatan alternatif jika perlu.
Kelas "ListHelper" yang disediakan mentakrifkan kaedah "ContainsAllItems" yang menyemak sama ada List " a" mengandungi semua elemen daripada Senarai "b" menggunakan kaedah "TrueForAll" untuk melelaran melalui elemen "b" dan mengesahkan kehadiran mereka dalam "a."
Dalam .NET versi 3.5 dan ke atas, alternatif yang lebih ringkas dan berprestasi wujud:
public static bool ContainsAllItems<T>(List<T> a, List<T> b) { return !b.Except(a).Any(); }
Kod ini memanfaatkan kaedah "Kecuali" untuk mengenal pasti sebarang unsur dalam "b" yang tiada dalam "a." Jika mana-mana elemen sedemikian wujud, hasilnya diterbalikkan untuk mengembalikan "palsu," menunjukkan bahawa "a" tidak mengandungi semua item daripada "b."
Manakala pendekatan "ListHelper" adalah sah, alternatif .NET yang ditawarkan dalam versi 3.5 dan ke atas memberikan kecekapan dan kesederhanaan yang lebih besar. Dengan menggunakan kaedah "Kecuali" dan "Mana-mana", kod itu menyemak ketiadaan unsur dalam "b" yang tiada dalam "a." Pendekatan ini lebih ringkas dan memanfaatkan kuasa LINQ untuk operasi set berprestasi.
Atas ialah kandungan terperinci Adakah .NET Menawarkan Cara Terbina dalam untuk Memeriksa sama ada Satu Senarai Mengandungi Semua Item daripada Yang Lain?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!