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

小编给大家分享一下如何遍历LINQ序列的所有子集,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联专注于乌当网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供乌当营销型网站建设,乌当网站制作、乌当网页设计、乌当网站官网定制、微信小程序服务,打造乌当网络公司原创品牌,更为您提供乌当网站排名全网营销落地服务。

遍历LINQ序列的所有子集

有的时候,遍历数组的所有子集很有用。子集和问题、布尔可满足性问题以及背包问题都可以通过遍历某个序列的所有子集来简单解决。

有了LINQ,我们可以如下声场所有arr数组的子集:

  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]; 

注意,如果子集的个数超过了int,上面的代码就不能工作。因此,仅当你知道arr的长度不超过30的时候才去使用这个方式。如果arr长度超过30,你应该不会是想去遍历所有的子集,因为可能这会耗费几分钟或更长的时间。

以上是“如何遍历LINQ序列的所有子集”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


本文标题:如何遍历LINQ序列的所有子集
转载来源:http://myzitong.com/article/ghisdi.html