程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#中斷定一個聚集能否是另外一個聚集的子集的簡略辦法

C#中斷定一個聚集能否是另外一個聚集的子集的簡略辦法

編輯:C#入門知識

C#中斷定一個聚集能否是另外一個聚集的子集的簡略辦法。本站提示廣大學習愛好者:(C#中斷定一個聚集能否是另外一個聚集的子集的簡略辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中斷定一個聚集能否是另外一個聚集的子集的簡略辦法正文


看到這個題目,我們起首想到的是輪回遍歷個中一個數組,斷定數組中的每一個元素能否都在另外一個數組中湧現了,以此來斷定該數組是否是另外一個數組的子集,然則如許做就太甚龐雜了,有無簡略一點的辦法呢?

打個比喻,有如許的兩個聚集:

string[] bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "a", "b"};

如今須要斷定smallArr能否是bigArr的子集。只需拿著bigArr和smallArr比擬,求差集,假如差集的個數年夜於0,就解釋smallArr是bigArr的子集。

//在年夜聚集的基本上,依據小聚集獲得年夜聚集的差集
var exceptArr = bigArr.Except(smallArr);
//斷定能否是子集
if(exceptArr.Any())
{
    Console.WriteLine("samllArr 是 bigArr的一個子集");
}
else
{
    Console.WriteLine("samllArr 不是 bigArr的一個子集");
}

以上的方法,只能斷定能否是子集,等於子集的誰人聚集元素永久小於年夜的誰人聚集。 

有時刻,還存在如許的需求:斷定bigArr能否包括smallArr,即smallArr可所以bigArr的子集,也能夠和bigArr是一樣的。

//斷定能否是子集或2個聚集一樣
if(smallArr.All(t => bigArr.Any(b => b==t)))
{
    Console.WriteLine("samllArr 是 bigArr的一個子集或一樣");
}
else
{
    Console.WriteLine("samllArr 不是 bigArr的一個子集或一樣");
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved