.NET中LINQ编程简化代码实现数组、遍历、转换等功能(2)
3. 生成随机序列
这是一个生成N长度随机序列的简单技巧:
| 以下为引用的内容:
Random rand = new Random(); var randomSeq = Enumerable.Repeat(0, N).Select(i => rand.Next()); |
有了LINQ的延迟特性,序列不会实现进行计算并保存到数组中,而是在迭代randomSeq的时候按需生成随机数。
LINQ同样也是生成各种类型字符串的好工具。对于测试或调试,生成字符串时很有用的。假设我们需要生成一个N长度的字符串,按照“ABCABCABC”的方式。使用LINQ,解决方案非常优雅:
| 以下为引用的内容:
string str = new string( Enumerable.Range(0, N) .Select(i => (char)(‘A’ i % 3)) .ToArray()); |
4.Petar Petrov给出了另外一种有趣的方式使用LINQ来生成字符串:
| 以下为引用的内容:
string values = string.Join(string.Empty, Enumerable.Repeat(pattern, N).ToArray()); |
5. 转换序列或集合
在C#或VB中我们不能实现把序列从T类型转换为U类型,即使T从U类继承。因此,即使把List转换为List转换为IEnumerable的话,LINQ有一个简单而有效的解决方案:
| 以下为引用的内容:
IEnumerablestrEnumerable = …; IEnumerable |
如果我们需要转换List为List,LINQ也提供了解决方案,但是它会进行列表的复制:
| 以下为引用的内容:
ListstrList = …; List(strList.Cast()); |
Chris Cavanagh建议另外一种解决方式:
| 以下为引用的内容:
var objList = strList.Cast().ToList(); |
- 在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)_MySQL 技术_龙盟编程网
- 如何应用PHP函数imagettftext处理图片_php编程_个人技术分享
- 如何解决C语言,函数名与宏冲突_C/C++开发_龙盟编程网
- sql 查询本年、本月、本日记录的语句,附SQL日期函数_Sql Server开发_龙盟编程网
- Android定时器实现的几种方式整理及removeCallbacks失效问题解决_Android开发_龙盟编程网
- 在ASP.Net中应用Javascript_Javascript编程_龙盟编程网
- 查询反向链接中link和domain的区别_SEO优化_龙盟编程网

