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