LINQ遍歷多個數(shù)組深入剖析
學(xué)習(xí)LINQ時,經(jīng)常會遇到LINQ遍歷多個數(shù)組問題,這里將介紹LINQ遍歷多個數(shù)組問題的解決方法。
自從學(xué)習(xí)LINQ以來,我發(fā)現(xiàn)了很多使用LINQ來改善代碼的方式。每一個技巧都讓代碼寫起來更簡單,可讀性更強(qiáng)。
這里總結(jié)了這些技巧。我會介紹如何使用LINQ:
◆初始化數(shù)組
◆在一個循環(huán)中LINQ遍歷多個數(shù)組
◆生成隨機(jī)序列
◆生成字符串
◆轉(zhuǎn)換序列或集合
◆把值轉(zhuǎn)換為長度為1的序列
◆遍歷序列的所有子集
如果你在LINQ方面有心得也歡迎在評論中一起分享。
在一個循環(huán)中LINQ遍歷多個數(shù)組
有個朋友問我一個C#的問題:有沒有辦法在一個循環(huán)中LINQ遍歷多個數(shù)組?他的代碼差不多是這樣:
- foreach (var x in array1) {
- DoSomething(x);
- }
- foreach (var x in array2) {
- DoSomething(x);
- }
這樣的話,循環(huán)主體會很大,而且他也不希望這樣重復(fù)的代碼。但是,他又不希望創(chuàng)建一個數(shù)組來保存array1和array2的所有元素。LINQ提供了一種優(yōu)雅的解決方案:Concat操作。我們可以使用單個循環(huán)來重寫上面的代碼,如下:
- foreach (var x in array1.Concat(array2)) {
- DoSomething(x);
- }
注意,由于LINQ在枚舉器級別進(jìn)行操作,他不會產(chǎn)生新的數(shù)組來保存array1和array2的元素。因此,除了優(yōu)雅之外,這個方案還很高效。
【編輯推薦】

















