本文向大家介绍LINQ解决方案,可能好多人还不了解LINQ解决方案,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
自从学习LINQ以来,我发现了很多使用LINQ来改善代码的方式。每一个技巧都让代码写起来更简单,可读性更强。
这里总结了这些技巧。我会介绍如何使用LINQ来:
◆初始化数组
◆在一个循环中遍历多个数组
◆生成随机序列
◆生成字符串
◆转换序列或集合
◆把值转换为长度为1的序列
◆遍历序列的所有子集
本文介绍转换序列或集合,如果你在LINQ方面有心得也欢迎在评论中一起分享。
转换序列或集合
在C#或VB中我们不能实现把序列从T类型转换为U类型,即使T从U类继承。因此,即使把List<string>转换为List<object>也很难实现。(要解释为什么,请看Bick Byer的帖子)。但是如果要把IEnumerable<T>转换为IEnumerable<U>的话,有一个简单而有效的LINQ解决方案:
- IEnumerable<string> strEnumerable = …;
- IEnumerable<object> objEnumerable = strEnumerable.Cast<object>();
如果我们需要转换List<T>为List<U>,也提供了LINQ解决方案,但是它会进行列表的复制:
- List<string> strList = …;
- List<object> objList = new List<object>(strList.Cast<object>());
Chris Cavanagh建议另外一种解决方式:
- var objList = strList.Cast<object>().ToList();
【编辑推荐】