对于实现了IEnumerable<T>接口的类、类型、集合可以使用Linq、Linq的扩展方法where()、FindAll()来查询符合谓词约束的数据。这三者之间执行的方式是不一样的,同样的数据同样的查询条件返回的结果也不相同。先上代码再分析。
public static void LaterSelect()
{
var names = new List<string> { "Nino", "Alberto", "Juan", "Mike", "Phil" };
var namesWithJ = from n in names
where n.StartsWith("J")
orderby n
select n;
var namesWithJforWhere = names.Where<string>(n => n.StartsWith("J"));
var namesWithJforFindAll = names.FindAll(n => n.StartsWith("J"));
Console.WriteLine("First iteration by Linq:");
foreach (string name in namesWithJ)
{
Console.WriteLine(name);
}