溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何遍歷LINQ序列的所有子集

發(fā)布時(shí)間:2021-12-02 09:37:14 來源:億速云 閱讀:375 作者:小新 欄目:編程語言

小編給大家分享一下如何遍歷LINQ序列的所有子集,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

遍歷LINQ序列的所有子集

有的時(shí)候,遍歷數(shù)組的所有子集很有用。子集和問題、布爾可滿足性問題以及背包問題都可以通過遍歷某個(gè)序列的所有子集來簡單解決。

有了LINQ,我們可以如下聲場所有arr數(shù)組的子集:

  1. T[] arr = ...;  

  2. var subsets = from m in Enumerable.Range(0, 1 << arr.Length
    select from i in Enumerable.Range(0, arr.Length) where 
    (m & (1 << i)) != 0 select arr[i]; 

注意,如果子集的個(gè)數(shù)超過了int,上面的代碼就不能工作。因此,僅當(dāng)你知道arr的長度不超過30的時(shí)候才去使用這個(gè)方式。如果arr長度超過30,你應(yīng)該不會(huì)是想去遍歷所有的子集,因?yàn)榭赡苓@會(huì)耗費(fèi)幾分鐘或更長的時(shí)間。

以上是“如何遍歷LINQ序列的所有子集”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI