亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#中判斷一個(gè)集合是否是另一個(gè)集合的子集的簡(jiǎn)單方法

 更新時(shí)間:2016年04月10日 09:15:23   作者:Darren Ji  
本文介紹利用C#中內(nèi)置的系統(tǒng)函數(shù)判斷一個(gè)集合是否是一個(gè)集合的子集的方法,此方法代碼量極少,分享給大家。

看到這個(gè)標(biāo)題,我們首先想到的是循環(huán)遍歷其中一個(gè)數(shù)組,判斷數(shù)組中的每個(gè)元素是否都在另一個(gè)數(shù)組中出現(xiàn)了,以此來(lái)判斷該數(shù)組是不是另一個(gè)數(shù)組的子集,但是這樣做就太過(guò)復(fù)雜了,有沒(méi)有簡(jiǎn)單一點(diǎn)的方法呢?

打個(gè)比方,有這樣的兩個(gè)集合:

復(fù)制代碼 代碼如下:
string[] bigArr = new string[] { "a", "b", "c" };
string[] smallArr = new string[] { "a", "b"};

現(xiàn)在需要判斷smallArr是否是bigArr的子集。只要拿著bigArr和smallArr比較,求差集,如果差集的個(gè)數(shù)大于0,就說(shuō)明smallArr是bigArr的子集。

復(fù)制代碼 代碼如下:
//在大集合的基礎(chǔ)上,根據(jù)小集合獲取大集合的差集
var exceptArr = bigArr.Except(smallArr);
//判斷是否是子集
if(exceptArr.Any())
{
    Console.WriteLine("samllArr 是 bigArr的一個(gè)子集");
}
else
{
    Console.WriteLine("samllArr 不是 bigArr的一個(gè)子集");
}

以上的方式,只能判斷是否是子集,即是子集的那個(gè)集合元素永遠(yuǎn)小于大的那個(gè)集合。 

有時(shí)候,還存在這樣的需求:判斷bigArr是否包含smallArr,即smallArr可以是bigArr的子集,也可以和bigArr是一樣的。

復(fù)制代碼 代碼如下:
//判斷是否是子集或2個(gè)集合一樣
if(smallArr.All(t => bigArr.Any(b => b==t)))
{
    Console.WriteLine("samllArr 是 bigArr的一個(gè)子集或一樣");
}
else
{
    Console.WriteLine("samllArr 不是 bigArr的一個(gè)子集或一樣");
}

相關(guān)文章

  • C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)

    C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)

    C#利用WMI操作DNS服務(wù)器(可遠(yuǎn)程操作,需要相應(yīng)權(quán)限)...
    2007-03-03
  • winform下實(shí)現(xiàn)win7 Aero磨砂效果實(shí)現(xiàn)代碼

    winform下實(shí)現(xiàn)win7 Aero磨砂效果實(shí)現(xiàn)代碼

    winform下實(shí)現(xiàn)win7 Aero磨砂效果實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2012-03-03
  • C#軟件注冊(cè)碼的實(shí)現(xiàn)代碼

    C#軟件注冊(cè)碼的實(shí)現(xiàn)代碼

    開發(fā)軟件時(shí),當(dāng)用到商業(yè)用途時(shí),注冊(cè)碼與激活碼就顯得很重要了?,F(xiàn)在的軟件破解技術(shù)實(shí)在在強(qiáng)了,各種國(guó)內(nèi)外大型軟件都有注冊(cè)機(jī)制,但同時(shí)也不斷地被破解。下面發(fā)的只是一個(gè)常用版本,發(fā)出源碼被破就更容易了,但我們學(xué)習(xí)的是技術(shù)。當(dāng)然也為以后自己的軟件不會(huì)被輕易破解。
    2013-05-05
  • 詳解Unity安卓共享紋理

    詳解Unity安卓共享紋理

    本文主要介紹了Unity安卓共享紋理,對(duì)此感興趣的同學(xué),可以參考下,親自實(shí)驗(yàn)一下,理解其原理。
    2021-05-05
  • 詳解C#之委托

    詳解C#之委托

    這篇文章主要介紹了C#委托的含義以及用法,文中代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí)
    2020-06-06
  • C#中IEnumerable接口用法實(shí)例分析

    C#中IEnumerable接口用法實(shí)例分析

    這篇文章主要介紹了C#中IEnumerable接口用法,實(shí)例分析了IEnumerable接口的功能與使用技巧,需要的朋友可以參考下
    2015-04-04
  • C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法

    C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法

    這篇文章主要介紹了C#簡(jiǎn)單實(shí)現(xiàn)SNMP的方法,通過(guò)一個(gè)簡(jiǎn)單的自定義類分析了C#實(shí)現(xiàn)SNMP的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • c# this關(guān)鍵字用法代碼詳解

    c# this關(guān)鍵字用法代碼詳解

    在本篇文章里小編給大家整理的是關(guān)于c# this關(guān)鍵字用法以及相關(guān)實(shí)例代碼,有興趣的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • C#實(shí)現(xiàn)小截屏軟件功能

    C#實(shí)現(xiàn)小截屏軟件功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)截圖軟件功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 初學(xué)C#所需明白的那些點(diǎn)

    初學(xué)C#所需明白的那些點(diǎn)

    這篇文章主要介紹了初學(xué)C#所需明白的那些點(diǎn),以及一些零碎知識(shí)點(diǎn)筆記,以供大家學(xué)習(xí)參考
    2023-03-03

最新評(píng)論