|
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()); 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(); |