簡述LINQ代碼生成字符串
本文主要介紹LINQ代碼生成,但在此之前我先介紹一下LINQ代碼生成隨機(jī)序列,因?yàn)楦兄诖蠹伊私釲INQ代碼生成的知識。
自從學(xué)習(xí)LINQ以來,我發(fā)現(xiàn)了很多使用LINQ來改善代碼的方式。每一個(gè)技巧都讓代碼寫起來更簡單,可讀性更強(qiáng)。
這里總結(jié)了這些技巧。我會介紹如何使用LINQ來:
◆初始化數(shù)組
◆在一個(gè)循環(huán)中遍歷多個(gè)數(shù)組
◆生成隨機(jī)序列
◆生成字符串
◆轉(zhuǎn)換序列或集合
◆把值轉(zhuǎn)換為長度為1的序列
◆遍歷序列的所有子集
本文介紹生成隨機(jī)序列和生成字符串,如果你在LINQ方面有心得也歡迎在評論中一起分享。
LINQ代碼生成隨機(jī)序列
這是一個(gè)生成N長度隨機(jī)序列的簡單技巧:
- Random rand = new Random();
- var randomSeq = Enumerable.Repeat(0, N).Select(i => rand.Next());
有了LINQ的延遲特性,序列不會實(shí)現(xiàn)進(jìn)行計(jì)算并保存到數(shù)組中,而是在迭代randomSeq的時(shí)候按需生成隨機(jī)數(shù)。
LINQ代碼生成字符串
同樣也可以讓LINQ代碼生成各種類型字符串。對于測試或調(diào)試,生成字符串時(shí)很有用的。假設(shè)我們需要生成一個(gè)N長度的字符串,按照“ABCABCABC”的方式。使用LINQ,解決方案非常優(yōu)雅:
- string str = new string(
- Enumerable.Range(0, N)
- .Select(i => (char)(‘A’ + i % 3))
- .ToArray());
- //Petar Petrov給出了另外一種有趣的方式使用LINQ來生成字符串:
- string values = string.Join(string.Empty, Enumerable.Repeat(pattern, N)
- .ToArray
以上就是對LINQ代碼生成的簡單介紹。
【編輯推薦】