C# LINQ
25 Mar 2019 |LINQ(Language-Integrated Query),是.NET Framework 3.5 開始新增的語言功能
特色是具備資料查詢的能力
,語法就像是 SQL 的語法
查詢作業需要三個部分
- 取得資料來源
- 建立查詢
- 執行查詢
範例說明
class Person {
public string Name { get; set; }
public string Gender { get; set; }
}
public static void Main () {
// 1. 資料來源
List<Person> person = new List<Person> {
new Person { Name = "Shawn", Gender = "Male" },
new Person { Name = "Erin", Gender = "Female" },
new Person { Name = "David", Gender = "Male" },
new Person { Name = "Susan", Gender = "Female" },
new Person { Name = "Joe", Gender = "Male" },
new Person { Name = "Eric", Gender = "Male" }
};
// 2. 建立查詢
var result = from p in person
where p.Gender == "Female"
select p;
// 3. 執行查詢
foreach (var r in result) {
Console.WriteLine ("Name is {0}, Gender is {1}", r.Name, r.Gender);
}
}
output
Name is Erin, Gender is Female
Name is Susan, Gender is Female
- from … in : 指定資料來源
- where: 條件式判斷,套用篩選
- select :取得查詢物件
另提取資料語法中有一個select new
,可以依照所設定的屬性產生類別物件,這個語法包含兩個功能:物件初始值 及 匿名型別
class Person {
public string Name { get; set; }
public string Gender { get; set; }
}
public static void Main () {
List<Person> person = new List<Person> {
new Person { Name = "Shawn", Gender = "Male" },
new Person { Name = "Erin", Gender = "Female" },
new Person { Name = "David", Gender = "Male" },
new Person { Name = "Susan", Gender = "Female" },
new Person { Name = "Joe", Gender = "Male" },
new Person { Name = "Eric", Gender = "Male" }
};
var result = from p in person
where p.Gender == "Female"
select new {
name = p.Name,
gender = p.Gender,
age = 18
};
foreach (var r in result) {
Console.WriteLine("Name {0}, Gender {1}, Age {2}", r.name, r.gender, r.age);
}
}
output
Name David, Gender Male, Age 20
Name Eric, Gender Male, Age 20
Name Joe, Gender Male, Age 20
Name Shawn, Gender Male, Age 20
LINQ 依照使用對象可以區分為
參考資料:
Comments