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