LINQ对于查询集合(或数组)非常有利。
例如,给定下面的示例数据:
var classroom = new Classroom { new Student { Name = "Alice", Grade = 97, HasSnack = true }, new Student { Name = "Bob", Grade = 82, HasSnack = false }, new Student { Name = "Jimmy", Grade = 71, HasSnack = true }, new Student { Name = "Greg", Grade = 90, HasSnack = false }, new Student { Name = "Joe", Grade = 59, HasSnack = false } }
我们可以使用LINQ语法这个数据“查询”。例如,要检索今天谁吃零食的所有学生:
var studentsWithSnacks = from s in classroom.Students where s.HasSnack select s;
或者,用90或以上年级学生检索,只有回到自己的名字,而不是完整的Student对象:
var topStudentNames = from s in classroom.Students wheres.Grade>= 90 select s.Name;
LINQ的功能由执行相同的功能,具有几乎相同的性能,但写的很不同的两个语法的。在该示例中的语法以上被称为查询语法。下面的例子中,然而,示出了方法的语法。将返回与上面的示例相同的数据,但是查询的编写方式不同。
var topStudentNames = classroom.Students .Where(s =>s.Grade>= 90) .Select(s => s.Name);