自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

LINQ序列詳細(xì)描述

開發(fā) 后端
這里介紹LINQ序列,有的時候,遍歷數(shù)組的所有子集很有用。子集和問題、布爾可滿足性問題以及背包問題都可以通過遍歷某個序列的所有子集來簡單解決。

學(xué)習(xí)LINQ時,經(jīng)常會遇到LINQ序列問題,這里將介紹LINQ序列問題的解決方法。

自從學(xué)習(xí)LINQ以來,我發(fā)現(xiàn)了很多使用LINQ來改善代碼的方式。每一個技巧都讓代碼寫起來更簡單,可讀性更強。

這里總結(jié)了這些技巧。我會介紹如何使用LINQ來:
◆初始化數(shù)組
◆在一個循環(huán)中遍歷多個數(shù)組
◆生成隨機(jī)序列
◆生成字符串
◆轉(zhuǎn)換序列或集合
◆把值轉(zhuǎn)換為長度為1的序列
◆遍歷LINQ序列的所有子集

本文介紹遍歷LINQ序列的所有子集,如果你在LINQ方面有心得也歡迎在評論中一起分享。

遍歷LINQ序列的所有子集

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

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

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

希望這些技巧對你有用,這些示例代碼都使用C#實現(xiàn),但是你可以很容易得改變?yōu)槠渌?NET語言。

【編輯推薦】

  1. LINQ查詢操作剖析
  2. LINQ生成字符串概述
  3. LINQ查詢語法簡單描述
  4. LINQ解決方案簡單概述
  5. LINQ查詢結(jié)果分析
責(zé)任編輯:佚名 來源: CSDN
相關(guān)推薦

2009-09-14 14:58:52

LINQ to XML

2009-09-14 16:33:55

LINQ To XML

2009-09-08 11:09:39

LINQ數(shù)據(jù)源

2009-09-24 16:19:53

Hibernate應(yīng)用

2009-09-25 14:28:40

Hibernate S

2010-03-18 10:04:39

Python Djan

2009-11-18 11:14:49

2010-02-05 16:58:18

Android服務(wù)

2009-08-10 16:40:03

C#索引器

2009-09-25 11:04:32

Hibernate3實

2010-04-09 17:45:06

Oracle索引

2009-10-15 14:59:45

網(wǎng)絡(luò)布線光纖技術(shù)

2009-08-26 15:53:48

C#擴(kuò)展方法

2009-08-27 15:17:40

C# const變量

2009-09-07 15:15:43

2009-10-10 10:04:50

RHEL合法使用

2010-09-08 15:10:48

2009-10-16 11:02:40

VB調(diào)用動態(tài)連接庫

2009-10-12 12:54:58

VB.NET聲明API

2009-09-03 17:59:18

C#調(diào)用事件
點贊
收藏

51CTO技術(shù)棧公眾號