ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา
สร้างสายงาน LINQ ขนาดเล็กเหนือ IEnumerable : กรองด้วย Where แปลงด้วย Select เรียงลำดับด้วย OrderBy และเรียนรู้ความแตกต่างระหว่างการทำงานแบบเลื่อนเวลากับการทำให้เป็นข้อมูลจริง
ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
ภาพรวม LINQ
เป้าหมาย: ใช้ไปป์ไลน์ LINQ ขนาดเล็กเพื่อกรอง แปลง และจัดลำดับข้อมูล
- Where (กรอง)
- Select (แปลงรูปแบบ)
- OrderBy, Take/Skip
- การประมวลผลแบบเลื่อนเวลาและการสร้างผลลัพธ์จริง
Where + Select
เชื่อม Where (กรอง) แล้วตามด้วย Select (แปลงรูปแบบ) ให้อ่านลำดับจากซ้ายไปขวา
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 1, 2, 3, 4, 5, 6 };
// Filter even numbers, then square them
var query = data.Where(x => x % 2 == 0)
.Select(x => x * x);
foreach (int n in query)
{
Console.WriteLine(n); // 4, 16, 36
}
}
}
OrderBy + Take
จัดเรียงด้วย OrderBy และ ThenBy แล้วจำกัดจำนวนด้วย Take
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] names = new string[] { "Zoe", "Ada", "Alan", "Bob" };
var top2 = names.OrderBy(s => s.Length) // shortest first
.ThenBy(s => s) // tie-breaker
.Take(2);
foreach (string s in top2)
{
Console.WriteLine(s); // Ada, Bob
}
}
}
การฉายข้อมูล (ชนิดไม่ระบุชื่อ)
Select สามารถสร้างออบเจ็กต์ไม่ระบุชื่อเพื่อเปลี่ยนโครงสร้างข้อมูลอย่างรวดเร็ว เช่น Word และ Length
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
string[] words = new string[] { "map", "filter", "reduce" };
var info = words.Select(w => new { Word = w, Length = w.Length });
foreach (var x in info)
{
Console.WriteLine(x.Word + " (" + x.Length + ")");
}
}
}
การประมวลผลแบบเลื่อนเวลา
เลื่อนเวลา: คิวรีจะทำงานเมื่อคุณวนซ้ำ การเปลี่ยนแปลงแหล่งข้อมูลก่อนการแจกแจงจะส่งผลต่อผลลัพธ์
using System;
using System.Linq;
using System.Collections.Generic;
public class Program
{
public static void Main(string[] args)
{
List<int> numbers = new List<int> { 1, 2, 3 };
var q = numbers.Where(x => x > 1); // not executed yet
numbers.Add(4); // modify source before enumeration
foreach (int x in q) // executes here
{
Console.WriteLine(x); // 2, 3, 4
}
}
}
การสร้างผลลัพธ์จริงและไวยากรณ์
ใช้ ToList/ToArray เพื่อประมวลผลและจัดเก็บผลลัพธ์ ไวยากรณ์คิวรีเป็นอีกวิธีหนึ่งในการเขียนไปป์ไลน์เดียวกัน
using System;
using System.Linq;
public class Program
{
public static void Main(string[] args)
{
int[] data = new int[] { 3, 1, 2 };
// Method syntax + materialize
var sorted = data.OrderBy(x => x).ToList(); // executes now
data[0] = 100; // will not affect 'sorted' (already materialized)
foreach (int n in sorted) { Console.WriteLine(n); } // 1,2,3
// Query syntax (equivalent)
var query =
from x in data
where x < 50
select x * 2;
foreach (int n in query) { Console.WriteLine(n); } // 2,4
}
}
ความหมายของการประมวลผลแบบเลื่อนเวลา
ทบทวน
ทบทวน: สร้างไปป์ไลน์ด้วย Where, Select, OrderBy และ Take/Skip LINQ ทำงานแบบ เลื่อนเวลา ให้สร้างผลลัพธ์จริงด้วย ToList/ToArray เมื่อต้องการผลลัพธ์ที่คงที่
คำถามที่พบบ่อย
บทเรียน “ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 3 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา”
สร้างสายงาน LINQ ขนาดเล็กเหนือ IEnumerable : กรองด้วย Where แปลงด้วย Select เรียงลำดับด้วย OrderBy และเรียนรู้ความแตกต่างระหว่างการทำงานแบบเลื่อนเวลากับการทำให้เป็นข้อมูลจริง คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 3 บทเรียน
บทเรียน “ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- อาร์เรย์ การตัดช่วง List และ Dictionary
- รูปแบบ foreach และตัวเริ่มต้นคอลเลกชัน
- ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา