0Pricing
C# Academy · บทเรียน

ตัวอย่าง 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
  }
}

ความหมายของการประมวลผลแบบเลื่อนเวลา

ตรวจสอบสั้น ๆ: การที่ตัวดำเนินการ LINQ ส่วนใหญ่ประมวลผลแบบเลื่อนเวลาหมายความว่าอย่างไร

ทบทวน

ทบทวน: สร้างไปป์ไลน์ด้วย 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. อาร์เรย์ การตัดช่วง List และ Dictionary
  2. รูปแบบ foreach และตัวเริ่มต้นคอลเลกชัน
  3. ตัวอย่าง LINQ: Where, Select, OrderBy, Take/Skip และการทำงานแบบเลื่อนเวลา
← กลับไปที่ C# Academy