.NET 有內建函數來檢查清單 a 是否包含清單 b 中的所有項目嗎?
這個問題的目的是確定.NET 是否提供內建功能來確定一個清單是否包含另一個清單的所有元素list.
提供的範例程式碼嘗試透過迭代第二個列表並檢查每個元素是否存在於第一個列表中來實現此目的。這種方法是可行的,但是有人想知道.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
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中文網其他相關文章!