本文主要介绍LINQ代码生成,但在此之前我先介绍一下LINQ代码生成随机序列,因为更有助于大家了解LINQ代码生成的知识。
自从学习LINQ以来,我发现了很多使用LINQ来改善代码的方式。每一个技巧都让代码写起来更简单,可读性更强。
这里总结了这些技巧。我会介绍如何使用LINQ来:
◆初始化数组
◆在一个循环中遍历多个数组
◆生成随机序列
◆生成字符串
◆转换序列或集合
◆把值转换为长度为1的序列
◆遍历序列的所有子集
本文介绍生成随机序列和生成字符串,如果你在LINQ方面有心得也欢迎在评论中一起分享。
LINQ代码生成随机序列
这是一个生成N长度随机序列的简单技巧:
- Random rand = new Random();
- var randomSeq = Enumerable.Repeat(0, N).Select(i => rand.Next());
有了LINQ的延迟特性,序列不会实现进行计算并保存到数组中,而是在迭代randomSeq的时候按需生成随机数。
LINQ代码生成字符串
同样也可以让LINQ代码生成各种类型字符串。对于测试或调试,生成字符串时很有用的。假设我们需要生成一个N长度的字符串,按照“ABCABCABC”的方式。使用LINQ,解决方案非常优雅:
- 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代码生成的简单介绍。
【编辑推荐】