利用LINQ判斷數組子集關係
在處理陣列或清單時,經常需要驗證一個陣列是否為另一個陣列的子集。在此上下文中,「子集」是指包含另一個集合所有元素的集合。
例如,考慮以下場景:
<code class="language-csharp">List<double> t1 = new List<double> { 1, 3, 5 }; List<double> t2 = new List<double> { 1, 5 };</code>
我們需要確定t2是否為t1的子集。為此,我們可以利用C#中LINQ(語言整合查詢)的功能。
LINQ提供了一個簡單且簡潔的方法來對集合執行集合運算。其中一項操作是Except
方法,該方法排除在另一個集合中也存在的元素。
要檢查t2是否為t1的子集,我們可以使用Except
方法,如下所示:
<code class="language-csharp">bool isSubset = !t2.Except(t1).Any();</code>
程式碼運作原理如下:
Except
方法用於建立一個新的序列,該序列僅包含t2中不在t1中也存在的元素。 Any
方法應用於此結果序列以檢查是否存在任何元素。 !
運算子用於否定Any
的結果,這表示如果結果序列為空(即不存在元素,表示t2是t1的子集),則傳回true
。 以上是LINQ 如何決定一個陣列是否是另一個陣列的子集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!