程序的运行结果如下:
15.OfType筛选指定类型的元素
16.Cast类型转换
17.AsEnumerable有些数据源类型不支持Enumerable的部分查询关键字,需要转换下,譬如IQueryable
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Cast_OfType_AsEnumerable
{
/// <summary>
/// DebugLZQ
/// http://www.easck.com/DebugLZQ
/// </summary>
class Program
{
static void Main(string[] args)
{
ArrayList names = new ArrayList();
names.Add("DebugLZQ");
names.Add("Jerry");
names.Add(100);
names.Add(new {Name="LZQ",Age=26});
names.Add(new Stack());
//15.OfType筛选指定类型的元素
var takenames = names.OfType<string>();
//16.Cast类型转换
var takenames2 = names.OfType<string>().Cast<string>();
//17.AsEnumerable
var takenames3 = takenames2.AsEnumerable();
foreach (var name in takenames3)
{
Console.Write("{0} ",name);
}
Console.ReadKey(false);
}
}
}
程序运行结果如下:
延时执行,顾名思义就是不是立即执行,即不是在查询语句定义的时候执行,而是在处理结果集(如遍历)的时候执行,在Enumerable类方法成员中,除了本节总结的这常用的17个外,前面博文---LINQ基本子句 中总结的8个基本子句也都是延时执行的。注意延时执行的查询程序的执行流程。
立即执行的Enumerable类方法
下面我们再来总结常用的立即执行的Enumerable类方法和它们的常用用法。同样,为了便于理解和记忆,进行一下分组:
1.ToArray序列转换成数组
2.ToList序列转换成List<T>












