LINQ初始化數(shù)組淺談
本文向大家介紹LINQ初始化數(shù)組,可能好多人還不了解LINQ初始化數(shù)組,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
自從學(xué)習(xí)LINQ以來(lái),我發(fā)現(xiàn)了很多使用LINQ來(lái)改善代碼的方式。每一個(gè)技巧都讓代碼寫(xiě)起來(lái)更簡(jiǎn)單,可讀性更強(qiáng)。
這里總結(jié)了這些技巧。我會(huì)介紹如何使用LINQ來(lái):
◆LINQ初始化數(shù)組
◆在一個(gè)循環(huán)中遍歷多個(gè)數(shù)組
◆生成隨機(jī)序列
◆生成字符串
◆轉(zhuǎn)換序列或集合
◆把值轉(zhuǎn)換為長(zhǎng)度為1的序列
◆遍歷序列的所有子集
如果你在LINQ方面有心得也歡迎在評(píng)論中一起分享。
LINQ初始化數(shù)組
通常,我們需要把數(shù)組的值初始化為相同的值或遞增的序列值,或者可能是一個(gè)步進(jìn)不為1的遞增/遞減序列。有了LINQ,我們可以在數(shù)組的初始化器中完成所有工作,不再需要循環(huán)!
在如下的示例代碼中,第一行代碼初始化了一個(gè)長(zhǎng)度為10的數(shù)組,所有元素都是-1,第二行代碼初始化b為0、1、2到9,第三行代碼初始化c為100、110、120到190。
- int[] a = Enumerable.Repeat(-1, 10).ToArray();
- int[] b = Enumerable.Range(0, 10).ToArray();
- int[] c = Enumerable.Range(0, 10).Select(i => 100 + 10 * i).ToArray();
要提醒一下:如果你初始化一個(gè)很大的數(shù)組,最好不考慮這種優(yōu)雅的方式而是使用傳統(tǒng)的方式來(lái)替代。LINQ的這種解決方案會(huì)動(dòng)態(tài)產(chǎn)生數(shù)組,因此垃圾數(shù)組需要在運(yùn)行時(shí)被回收。也就是說(shuō),我總是會(huì)在小數(shù)組或測(cè)試調(diào)試代碼的情況下使用這種技巧。
【編輯推薦】