假設我們有 Student 類別:
有一個 students 清單:
我們可以用最簡單的 LINQ 查詢語法(Query Syntax) 歷遍資料:
也可以只取得單獨的屬性:
也可以使用匿名類別將資料重組:
使用 where 關鍵字可以將資料過濾:
使用 orderby 關鍵字可以將資料排序:
也可以指定多個排序方式:
文章撰寫中...請稍後...
參考資料:
Microsoft.Learn - Query expression basics
Microsoft.Learn - Write C# LINQ queries to query data
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
有一個 students 清單:
var students = new List<Student>
{
new() { Id = 1, Name = "大頭" },
new() { Id = 2, Name = "小明" },
new() { Id = 3, Name = "阿華" },
};
我們可以用最簡單的 LINQ 查詢語法(Query Syntax) 歷遍資料:
IEnumerable<Student> enumerable =
from student in students
select student;
也可以只取得單獨的屬性:
IEnumerable<string> enumerable =
from student in students
select student.Name;
foreach (var name in enumerable)
{
Console.WriteLine(name);
// 大頭
// 小明
// 阿華
}
也可以使用匿名類別將資料重組:
var enumerable =
from student in students
select new
{
StudentId = student.Id,
StudentName = student.Name
};
foreach (var name in enumerable)
{
Console.WriteLine($"{name.StudentId} {name.StudentName}");
// 1 大頭
// 2 小明
// 3 阿華
}
使用 where 關鍵字可以將資料過濾:
var enumerable =
from student in students
where student.Id > 1
select student.Name;
使用 orderby 關鍵字可以將資料排序:
var enumerable =
from student in students
where student.Id > 1
orderby student.Id descending
select student.Name;
也可以指定多個排序方式:
var enumerable =
from student in students
where student.Id > 1
orderby student.Id descending, student.Name // 依 Id 遞減排序,再依 Name 遞增排序
select student.Name;
文章撰寫中...請稍後...
參考資料:
Microsoft.Learn - Query expression basics
Microsoft.Learn - Write C# LINQ queries to query data
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com