基本

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