龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

.NET中LINQ编程简化代码实现数组、遍历、转换等功能(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
3. 生成随机序列 这是一个生成N长度随机序列的简单技巧: 以下为引用的内容: Random rand = new Random(); var randomSeq = Enumerable.Repeat(0, N).Select(i = rand.Next()); 有

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


精彩图集

赞助商链接