基本
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
where s.Grade >= 90
select s.Name;
LINQ 功能由两个执行相同功能的语法组成,具有几乎相同的性能,但写法却截然不同。上例中的语法称为查询语法。但是,以下示例说明了方法语法。将返回相同的数据,如上例所示,但查询的编写方式不同。
var topStudentNames = classroom.Students
.Where(s => s.Grade >= 90)
.Select(s => s.Name);