from |
定義查詢的資料來源 |
csharp<br>var query = from o in foodList<br>where o.price >= 15<br>orderby o.name descending<br>select o;<br> |
定義要從集合中查詢的資料來源,o 為迭代變數。 |
where |
過濾符合條件的資料 |
csharp<br>where o.price >= 15<br> |
過濾符合條件的元素,這裡用來篩選價格大於等於 15 的項目。 |
orderby |
按指定欄位進行排序 |
csharp<br>orderby o.name descending<br> |
按指定欄位排序,descending 表示降序排列。 |
select |
選取查詢結果 |
csharp<br>select o;<br> |
指定要返回的結果,這裡選擇滿足條件的 Food 物件。 |
ToList() |
將結果轉換為列表 |
csharp<br>var list = query.ToList();<br> |
將 LINQ 查詢結果轉換為 List<T> ,便於後續操作。 |
DataSource |
將查詢結果顯示在 UI 控件上 |
csharp<br>dataGridView1.DataSource = query.ToList();<br> |
將查詢結果綁定到 UI 控件,如 DataGridView 。 |
IEnumerable<T> |
支援簡單迭代集合的泛型介面 |
csharp<br>IEnumerable<int> numbers = new List<int> { 1, 2, 3 };<br>foreach (var num in numbers)<br>{<br>Console.WriteLine(num);<br>}<br> |
IEnumerable<T> 允許對集合進行遍歷,但無法修改或隨機存取集合。 |
GetEnumerator() |
用於返回一個迭代器以遍歷集合 |
csharp<br>var enumerator = numbers.GetEnumerator();<br> |
取得集合的迭代器,可以逐一訪問集合中的元素。 |
yield return |
延遲計算並逐步返回值 |
csharp<br>IEnumerable<int> GetNumbers()<br>{<br> for (int i = 0; i < 5; i++)<br> yield return i;<br>}<br> |
允許逐步生成數據,延遲查詢,直到遍歷時才執行。 |
First() |
返回集合中的第一個元素 |
csharp<br>var firstFood = foodList.First();<br> |
返回集合中的第一個元素;如果集合為空,將引發例外。 |
FirstOrDefault() |
返回集合中的第一個元素或預設值 |
csharp<br>var firstFood = foodList.FirstOrDefault(o => o.price > 10);<br> |
如果集合中存在滿足條件的元素,返回第一個;否則返回預設值 (通常是 null )。 |
Single() |
找出集合中的唯一元素 |
csharp<br>var uniqueFood = foodList.Single(o => o.name == "milk");<br> |
只會回傳一個符合條件的元素;如果沒有符合的元素或有多個符合的元素,則會引發例外。 |
SingleOrDefault() |
找出唯一元素或空值 |
csharp<br>var uniqueFood = foodList.SingleOrDefault(o => o.name == "nonexistent");<br> |
只會回傳一個符合條件的元素;如果沒有符合的元素,則回傳 null 。如果有多個符合的元素,則會引發例外。 |
Sum() |
計算集合中所有元素的總和 |
csharp<br>int[] numbers = { 1, 2, 3, 4, 5 };<br>int total = numbers.Sum();<br> |
Sum() 是 LINQ 方法,用於計算集合中所有數字元素的總和。 |
Sum(Func<TSource, TResult>) |
計算特定屬性的總和 |
csharp<br>List<Food> foodList = new List<Food>() { new Food() { price = 5 }, new Food() { price = 15 } };<br>int totalPrice = foodList.Sum(o => o.price);<br> |
計算集合中某個屬性(如 price )的總和。 |
Aggregate() |
將集合中的元素進行聚合計算 |
csharp<br>int[] numbers = { 1, 2, 3, 4, 5 };<br>int sum = numbers.Aggregate((total, next) => total + next);<br> |
將集合中的所有元素使用指定的運算進行聚合,這裡是計算總和。 |
Aggregate(Func<TAccumulate, TSource, TAccumulate>) |
自定義聚合操作 |
csharp<br>List<Food> foodList = new List<Food>() { new Food() { price = 5 }, new Food() { price = 15 } };<br>int totalPrice = foodList.Aggregate(0, (total, food) => total + food.price);<br> |
將集合中的元素進行自定義聚合計算,這裡是計算總價格。 |