Basics of C# Language Learning

Learning the Basics of C# Language

การเรียนรู้พื้นฐานของภาษา C# ซึ่งเป็นภาษาโปรแกรมมิ่ง ที่ถูกพัฒนาขึ้นโดย Microsoft และใช้ในการพัฒนาโปรแกรมต่าง ๆ บนแพลตฟอร์ม .NET Framework .NET Core .NET 5+

Learning the basics of C# language
Ake SuwaphanAke Suwaphan
25 April 2024

Learning the Basics of C# Language

การเรียนรู้พื้นฐานของภาษา C# ซึ่งเป็นภาษาโปรแกรมมิ่ง ที่ถูกพัฒนาขึ้นโดย Microsoft และใช้ในการพัฒนาโปรแกรมต่าง ๆ บนแพลตฟอร์ม .NET Framework .NET Core .NET 5+ ซึ่งเป็นเทคโนโลยีที่กำลังได้รับความนิยมในการพัฒนาโปรแกรมมากขึ้นในปัจจุบัน

นี่คือบางเนื้อหาพื้นฐานที่เกี่ยวข้องกับ C#

1. การประกาศตัวแปรและประเภทข้อมูล การสร้างตัวแปรและระบุประเภทข้อมูล เช่น int, float, string, bool เป็นต้น

การประกาศตัวแปรและระบุประเภทข้อมูลเป็นขั้นตอนที่สำคัญในการเขียนโปรแกรมด้วย C# โดยปกติแล้ว เมื่อเราประกาศตัวแปร เราจะต้องระบุประเภทข้อมูลของตัวแปรนั้น เพื่อให้คอมไพเลอร์รู้ว่าตัวแปรนั้นเก็บข้อมูลประเภทใด นอกจากนี้ เรายังสามารถกำหนดค่าเริ่มต้นให้กับตัวแปรได้ในขณะที่เราประกาศตัวแปร

ตัวอย่างการประกาศตัวแปรและระบุประเภทข้อมูลใน C#


// ประกาศตัวแปรชนิด int ชื่อว่า number และกำหนดค่าเริ่มต้นเป็น 10
int number = 10;

// ประกาศตัวแปรชนิด float ชื่อว่า floatValue และกำหนดค่าเริ่มต้นเป็น 3.14
float floatValue = 3.14f;

// ประกาศตัวแปรชนิด string ชื่อว่า message และกำหนดค่าเริ่มต้นเป็น "Hello, world!"
string message = "Hello, world!";

// ประกาศตัวแปรชนิด bool ชื่อว่า isTrue และกำหนดค่าเริ่มต้นเป็น true
bool isTrue = true;

  • ในตัวอย่างด้านบน
    • int เป็นประเภทข้อมูลที่ใช้เก็บจำนวนเต็ม เช่น 1, 2, 3, -10
    • float เป็นประเภทข้อมูลที่ใช้เก็บจำนวนทศนิยม เช่น 3.14, -0.5, 10.0
    • string เป็นประเภทข้อมูลที่ใช้เก็บข้อความ เช่น "Hello, world!", "C# Programming", "suwaphan.com"
    • bool เป็นประเภทข้อมูลที่ใช้เก็บค่าความจริง เช่น true, false

การประกาศตัวแปรและระบุประเภทข้อมูลใน C# เป็นขั้นตอนพื้นฐานที่จำเป็นต้องรู้ในการเขียนโปรแกรมด้วยภาษานี้

2. โครงสร้างควบคุม การใช้งานโครงสร้างควบคุม เช่น if-else, switch-case, loops เพื่อควบคุมการทำงานของโปรแกรม

โครงสร้างควบคุม (Control structures) เป็นส่วนสำคัญในการเขียนโปรแกรมเพื่อควบคุมการทำงานของโปรแกรมให้เป็นไปตามเงื่อนไขและการวนลูปตามที่กำหนดไว้ โครงสร้างควบคุมช่วยให้โปรแกรมมีการตรวจสอบเงื่อนไข และตัดสินใจในการทำงานของโปรแกรมในแต่ละส่วนได้ตรงไปตรงมา

นี่คือสามโครงสร้างควบคุมที่สำคัญใน C#

2.1 if-else โครงสร้างควบคุมที่ใช้สำหรับตรวจสอบเงื่อนไขและการตัดสินใจในการดำเนินการ ถ้าเงื่อนไขเป็นจริง (true) จะทำงานในส่วนของ if แต่ถ้าเงื่อนไขเป็นเท็จ (false) จะทำงานในส่วนของ else หรือส่วนอื่น ๆ ที่กำหนด


int x = 10;
if (x > 5)
{
    Console.WriteLine("x มากกว่า 5");
}
else 
{
    Console.WriteLine("x น้อยกว่าหรือเท่ากับ 5");
}

2.2 switch-case โครงสร้างควบคุมที่ใช้สำหรับการตรวจสอบค่าของตัวแปรและการตัดสินใจในการดำเนินการตามค่าที่ตรวจสอบ โครงสร้างนี้มักจะใช้แทน if-else ในกรณีที่ต้องตรวจสอบค่าที่มีหลายค่า


int day = 3;
switch (day)
{
    case 1:
        Console.WriteLine("Sunday");
        break;
    case 2:
        Console.WriteLine("Monday");
        break;
    case 3:
        Console.WriteLine("Tuesday");
        break;
    default:
        Console.WriteLine("Invalid day");
        break;
}

2.3 Loops โครงสร้างควบคุมที่ใช้สำหรับการทำงานซ้ำซ้อนจนกว่าเงื่อนไขจะเป็นเท็จ มีสามประเภทหลักคือ for-loop, while-loop และ do-while-loop


for (int i = 0; i < 5; i++)
{
    Console.WriteLine(i);
}

for-loop ใช้สำหรับการทำซ้ำที่จำนวนรอบที่ระบุล่วงหน้า


int j = 0;
while  (j < 5)
{
    Console.WriteLine(j);
    j++;
}

while-loop ใช้สำหรับการทำซ้ำที่มีการตรวจสอบเงื่อนไขก่อนที่จะเริ่มทำงาน


int k = 0;
do
{
    Console.WriteLine(k);
    k++;
} while  (k < 5);

do-while-loop ใช้สำหรับการทำซ้ำที่มีการตรวจสอบเงื่อนไขหลังจากทำงานแล้ว

โครงสร้างควบคุมเหล่านี้ช่วยให้โปรแกรมมีความยืดหยุ่นในการดำเนินการตามเงื่อนไขและการวนซ้ำตามที่ต้องการ

3. การสร้างและใช้งานฟังก์ชัน การสร้างฟังก์ชันเพื่อจัดการกับการทำงานที่ซ้ำซ้อนและเรียกใช้ฟังก์ชัน

การสร้างและใช้งานฟังก์ชัน (Functions) เป็นสิ่งสำคัญในการเขียนโปรแกรม เนื่องจากฟังก์ชันช่วยให้โค้ดมีโครงสร้างและสามารถใช้งานซ้ำได้ โดยทั่วไปแล้ว ฟังก์ชันใช้สำหรับการจัดการกับโปรแกรมแต่ละส่วนที่มีการทำงานเหมือนกันหรือคล้ายกัน ฟังก์ชันสามารถรับค่าอาร์กิวเมนต์ (arguments) เข้ามา เพื่อประมวลผลและส่งค่าคืน (return) ออกไปตามที่กำหนด

นี่คือตัวอย่างการสร้างและใช้งานฟังก์ชันใน C#


// สร้างฟังก์ชันชื่อว่า Add ที่รับค่าสองจำนวนและคืนค่าผลบวก
int Add(int a, int b)
{
    return a + b;
}

// เรียกใช้งานฟังก์ชัน Add และแสดงผลลัพธ์ออกทางหน้าจอ
int result = Add(3, 5);
Console.WriteLine("Result: " + result); // ผลลัพธ์จะเป็น 8

// สร้างฟังก์ชันชื่อว่า Greet ที่รับชื่อเข้ามาและพิมพ์ข้อความทักทาย
void Greet(string name)
{
    Console.WriteLine("Hello, " + name + "!");
}

// เรียกใช้งานฟังก์ชัน Greet เพื่อทักทายผู้ใช้
Greet("Ake Suwaphan"); // ผลลัพธ์จะเป็น "Hello, Ake Suwaphan!"

  • ในตัวอย่างด้านบน
    • Add เป็นฟังก์ชันที่รับพารามิเตอร์สองตัวและคืนค่าผลรวมของพารามิเตอร์ทั้งสอง
    • Greet เป็นฟังก์ชันที่รับชื่อเข้ามาและพิมพ์ข้อความทักทายผู้ใช้

การใช้งานฟังก์ชันช่วยให้โค้ดมีความยืดหยุ่นและอ่านง่ายมากขึ้น และช่วยลดการทำซ้ำของโค้ดในโปรแกรม

4. การใช้งาน Class และ Object การสร้าง Class เพื่อแยกพฤติกรรมและข้อมูล และสร้าง Object เพื่อใช้งาน Class นั้น

4.1 Class (คลาส) Class เป็นแบบแผน (Blueprint) หรือรูปแบบที่ใช้ในการสร้าง Object ซึ่งรวบรวมข้อมูล (attributes) และพฤติกรรม (methods) เข้าด้วยกัน ใน C# เราสามารถสร้าง Class โดยใช้คีย์เวิร์ด class ตามด้วยชื่อของ Class และเปิดปิดด้วยเครื่องหมาย {}

ตัวอย่างของการสร้าง Class ใน C#


public class Car
{
    // Attributes
    public string brand;
    public string model;
    public int year;

    // Method
    public void Start()
    {
        Console.WriteLine("The car is starting...");
    }
}

4.2 Object (ออบเจ็กต์) Object เป็นการสร้าง Instance ของ Class และใช้งานฟังก์ชันและข้อมูลที่ถูกกำหนดใน Class นั้น ๆ ซึ่งเราสามารถสร้าง Object ของ Class ได้โดยใช้คำสั่ง new ตามด้วยชื่อของ Class และการเรียกใช้งานฟังก์ชันหรือการเข้าถึงข้อมูลที่ถูกกำหนดไว้ใน Class

ตัวอย่างการสร้าง Object และใช้งานใน C#


Car myCar = new Car(); // สร้าง Object ชื่อ myCar จาก Class Car

// กำหนดค่าข้อมูลให้กับ Object
myCar.brand = "Honda";
myCar.model = "Accord";
myCar.year = 2024;

// เรียกใช้งานเมธอดของ Object
myCar.Start(); // ผลลัพธ์จะเป็น "The car is starting..."

โดยการใช้งาน Class และ Object ช่วยให้โปรแกรมมีโครงสร้างและการจัดการข้อมูลที่เรียบง่ายและมีประสิทธิภาพมากขึ้น และช่วยในการเรียกใช้งานโค้ดที่ถูกสร้างไว้ใหม่ในอนาคตได้ง่ายยิ่งขึ้น

5. การจัดการข้อผิดพลาด การใช้งานการจัดการข้อผิดพลาดเพื่อการดำเนินการต่อไปในกรณีที่เกิดข้อผิดพลาดในระหว่างการทำงาน

5.1 การตรวจสอบข้อผิดพลาด (Error Checking) ตรวจสอบสถานะหรือการทำงานของโปรแกรมในทุก ๆ จุดที่สามารถเกิดข้อผิดพลาดได้ เช่น การตรวจสอบค่าที่รับเข้ามาหรือการทำงานของฟังก์ชัน

5.2 การระบุและรายงานข้อผิดพลาด (Error Logging) ในกรณีที่เกิดข้อผิดพลาด ระบบควรบันทึกข้อมูลข้อผิดพลาดในบันทึกข้อผิดพลาด (Error Log) เพื่อให้สามารถวิเคราะห์และแก้ไขได้ในภายหลัง

5.3 การแจ้งเตือนผู้ใช้งาน (User Notification) หากเกิดข้อผิดพลาดที่สามารถแสดงผลให้ผู้ใช้เห็นได้ ระบบควรแจ้งเตือนผู้ใช้งานเกี่ยวกับข้อผิดพลาดนั้นๆ อย่างชัดเจนและเข้าใจง่าย

5.4 การจัดการข้อผิดพลาด (Error Handling) การรับมือกับข้อผิดพลาดโดยการใช้โครงสร้างการจัดการข้อผิดพลาด เช่น การใช้คำสั่ง try-catch-finally เพื่อจับและจัดการข้อผิดพลาดที่เกิดขึ้น

ตัวอย่างการใช้งาน try-catch ใน C#


try
{
    // โค้ดที่อาจเกิดข้อผิดพลาด
    int result = 10 / 0; // การหารด้วยศูนย์จะเกิดข้อผิดพลาด
}
catch (Exception ex)
{
    // จับข้อผิดพลาดและทำงานที่นี่เมื่อเกิดข้อผิดพลาด
    Console.WriteLine ("An error occurred: " + ex.Message);
}
finally
{
    // ทำงานที่นี่ไม่ว่าจะมีข้อผิดพลาดหรือไม่ก็ตาม
    Console.WriteLine ("The 'try-catch' is finished");
}

การจัดการข้อผิดพลาดช่วยให้โปรแกรมทำงานได้อย่างมีประสิทธิภาพและเสถียรมากขึ้น และช่วยให้ผู้ใช้งานสามารถทำงานต่อไปได้โดยไม่มีการสะดุดหรือหยุดทำงานของโปรแกรม

6. การใช้งาน Array และ Collection การสร้างและใช้งาน Array และ Collection เพื่อจัดเก็บข้อมูลที่มีโครงสร้างต่าง ๆ

การใช้งาน Array และ Collection เป็นวิธีที่มักถูกใช้ในการจัดเก็บข้อมูลในโปรแกรม โดยมีลักษณะและวิธีการใช้งานที่แตกต่างกันดังนี้

  • 6.1 Array (อาร์เรย์)
    • ลักษณะ Array เป็นโครงสร้างข้อมูลที่เก็บข้อมูลในรูปแบบของชุดข้อมูลที่มีขนาดคงที่ และประกอบด้วยสมาชิกหลายตัว โดยสามารถเข้าถึงสมาชิกแต่ละตัวได้โดยใช้ดัชนี (index) เพื่ออ้างอิงถึงตำแหน่งของข้อมูลในอาร์เรย์
    • การสร้างและใช้งาน สร้างอาร์เรย์โดยกำหนดประเภทของข้อมูลและขนาดของอาร์เรย์ จากนั้นกำหนดค่าให้กับสมาชิกแต่ละตัว โดยสามารถเข้าถึงข้อมูลด้วยดัชนีได้

// สร้างอาร์เรย์ของจำนวนเต็มแบบห้าตัว
int[] numbers = new int[5];

// กำหนดค่าให้กับสมาชิกแต่ละตัว
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;

// เข้าถึงและแสดงค่าของสมาชิกแต่ละตัว
Console.WriteLine(numbers[0]); // ผลลัพธ์: 10
Console.WriteLine(numbers[3]); // ผลลัพธ์: 40

  • 6.2 Collection (คอลเล็กชัน)
    • ลักษณะ Collection เป็นโครงสร้างข้อมูลที่เป็นกลุ่มของอ็อบเจกต์ที่ใช้ในการจัดเก็บข้อมูล แต่ไม่มีขนาดคงที่เหมือนกับอาร์เรย์ ซึ่งมี Collection หลายประเภท เช่น List, Dictionary, Queue, Stack ฯลฯ และสามารถเพิ่ม ลบ และแก้ไขข้อมูลได้ตามต้องการ
    • การสร้างและใช้งาน สร้าง Collection โดยใช้คำสั่ง new ตามด้วยชื่อของ Collection และเพิ่มข้อมูลลงใน Collection โดยใช้เมทอดหรือเราสมบัติที่เหมาะสม

using System.Collections.Generic;

// สร้าง List เพื่อจัดเก็บข้อมูลชนิด string
List<string> colors = new List<string>();

// เพิ่มข้อมูลลงใน List
colors.Add("Red");
colors.Add("Black");
colors.Add("Green");
colors.Add("Blue");

// แสดงข้อมูลใน List ทั้งหมด
foreach (string color in colors)
{
    Console.WriteLine(colors);
}

การใช้งาน Array และ Collection ช่วยให้โปรแกรมสามารถจัดเก็บข้อมูลได้อย่างมีระเบียบและมีประสิทธิภาพ และสามารถปรับปรุงข้อมูลตามต้องการได้อย่างสะดวกและยืดหยุ่น

7. การทำงานกับไฟล์และการจัดการข้อมูล การอ่านและเขียนไฟล์ และการจัดการกับข้อมูลในรูปแบบต่าง ๆ เช่น XML, JSON, ฐานข้อมูล

การทำงานกับไฟล์และการจัดการข้อมูลเป็นกระบวนการสำคัญในการพัฒนาซอฟต์แวร์ เนื่องจากมันช่วยให้โปรแกรมสามารถอ่าน บันทึก และประมวลผลข้อมูลได้อย่างมีประสิทธิภาพ นี่คือบางวิธีที่มักถูกใช้ในการทำงานกับไฟล์และการจัดการข้อมูล

7.1 อ่านและเขียนไฟล์ การอ่านและเขียนไฟล์เป็นกระบวนการที่สำคัญในการจัดการข้อมูล โดยในภาษา C# มีคลาส System.IO.File ที่ใช้ในการอ่านและเขียนไฟล์ได้ง่าย ๆ


using System.IO;

// อ่านข้อมูลจากไฟล์
string text = File.ReadAllText("filename.txt");

// เขียนข้อมูลลงในไฟล์
File.WriteAllText("newfile.txt", "Hello, world!");

  • 7.2 การจัดการกับข้อมูลในรูปแบบต่าง ๆ
    • XML (eXtensible Markup Language) XML เป็นภาษาที่ใช้ในการแสดงข้อมูลในรูปแบบของต้นไม้ โดยใน C# มีคลาส System.Xml.XmlDocument และ System.Xml.Linq.XDocument ที่ใช้ในการอ่านและเขียน XML ได้
    • JSON (JavaScript Object Notation) JSON เป็นรูปแบบของข้อมูลที่ใช้ในการสื่อสารระหว่างเซิร์ฟเวอร์และไคลเอนต์ ใน C# มีคลาส System.Text.Json.JsonSerializer และ Newtonsoft.Json.JsonConvert ที่ใช้ในการอ่านและเขียน JSON ได้

using System.Xml.Linq;
using Newtonsoft.Json;

// อ่าน XML จากไฟล์
XDocument doc = XDocument.Load("data.xml");

// อ่าน JSON จากไฟล์
string json = File.ReadAllText("data.json");
dynamic data = JsonConvert.DeserializeObject(json);

7.3 ฐานข้อมูล (Database) การจัดการข้อมูลในฐานข้อมูลเป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์ ใน C# มี ADO.NET ที่ใช้ในการเชื่อมต่อกับฐานข้อมูลและใช้ภาษา SQL เพื่อการจัดการข้อมูล


using System.Data.SqlClient;

// เชื่อมต่อกับฐานข้อมูล SQL Server
string connectionString = "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    // สร้างและส่งคำสั่ง SQL
    SqlCommand command = new SqlCommand("SELECT * FROM MyTable", connection);
    connection.Open();

    // อ่านข้อมูลจากฐานข้อมูล
    SqlDataReader reader = command.ExecuteReader();
    while (reader.Read())
    {
        Console.WriteLine(reader["ColumnName"].ToString());
    }
}

การทำงานกับไฟล์และการจัดการข้อมูลช่วยให้โปรแกรมสามารถจัดการข้อมูลได้อย่างมีประสิทธิภาพและสะดวกสบาย และช่วยในการเก็บรักษาข้อมูลให้เป็นระเบียบและปลอดภัย

8. การใช้งานการสืบทอด (Inheritance) และ Polymorphism การสร้างคลาสที่สืบทอดเราสมบัติจากคลาสอื่น ๆ และการใช้งานเราสมบัติของคลาสแม่

การสืบทอด (Inheritance) และ Polymorphism เป็นหลักการสำคัญในการพัฒนาโปรแกรมเชิงวัตถุ (Object-Oriented Programming) ที่ช่วยให้โปรแกรมสามารถใช้งานและรวมร่างของโค้ดได้อย่างยืดหยุ่นและเป็นระเบียบมากขึ้น

  • 8.1 การสืบทอด (Inheritance)
    • การสืบทอดเป็นกระบวนการที่คลาสหนึ่งสามารถสืบเราสมบัติและพฤติกรรมจากคลาสอื่น ๆ ที่เรียกว่าคลาสแม่ (Base Class) หรือ Super Class โดยทำให้คลาสลูก (Derived Class) สามารถใช้งานเราสมบัติของคลาสแม่ได้
    • โดยทั่วไปแล้ว การสืบทอดช่วยในการสร้างคลาสที่มีลักษณะและพฤติกรรมที่คล้ายกัน แต่มีความแตกต่างในรายละเอียดเฉพาะของแต่ละคลาส

// คลาสแม่
class Animal
{
    public virtual void Sound()
    {
        Console.WriteLine("เสียงเห่าของสุนัข คือ");
    }
}

// คลาสลูก
class Dog : Animal
{
    public override void Sound()
    {
        Console.WriteLine("ฮ่อง ฮ่อง!");
    }
}

  • 8.2 Polymorphism
    • Polymorphism หมายถึงความสามารถของอ็อบเจกต์ในการแสดงพฤติกรรมที่แตกต่างกันไปขึ้นอยู่กับประเภทของอ็อบเจกต์นั้น ๆ ซึ่งมันเป็นผลมาจากการสืบทอด
    • เมื่อเรียกใช้เมทอดหรือการทำงานบางอย่างกับอ็อบเจกต์ ระบบจะตรวจสอบประเภทของอ็อบเจกต์และเรียกใช้เมทอดหรือการทำงานที่เหมาะสมตามคลาสของอ็อบเจกต์นั้น

Animal myDog = new Dog();
myDog.Sound(); // ผลลัพธ์: ฮ่อง ฮ่อง!

การใช้งาน Inheritance และ Polymorphism ช่วยให้โปรแกรมสามารถเขียนโค้ดที่ยืดหยุ่นและมีประสิทธิภาพมากขึ้น โดยช่วยลดการทำซ้ำของโค้ดและเพิ่มความสามารถในการเปลี่ยนแปลงและการขยายตัวของโปรแกรมได้ง่ายขึ้น

9. การใช้งานการจัดการกับเวลา การทำงานกับวันที่และเวลา เช่น การคำนวณวันที่, การจัดรูปแบบของวันที่

การจัดการกับเวลาเป็นกระบวนการที่สำคัญในการพัฒนาซอฟต์แวร์ เนื่องจากมันช่วยให้โปรแกรมสามารถทำงานกับข้อมูลเวลาและวันที่ได้อย่างถูกต้องและมีประสิทธิภาพ นี่คือบางวิธีที่สามารถใช้ในการจัดการกับเวลาในภาษา C#

9.1 การคำนวณวันที่และเวลา ใน C# มีคลาส System.DateTime ที่ใช้ในการจัดการกับวันที่และเวลา โดยมันมีเมทอดต่าง ๆ ที่ช่วยในการคำนวณและจัดการกับข้อมูลเวลา


DateTime now = DateTime.Now; // วันที่และเวลาปัจจุบัน
DateTime tomorrow = now.AddDays(1); // วันที่พรุ่งนี้
TimeSpan difference = tomorrow - now; // คำนวณช่วงเวลาระหว่างวันที่
Console.WriteLine($"Difference in days: {difference.TotalDays}");

9.2 การจัดรูปแบบของวันที่ เมื่อต้องการแสดงหรือประมวลผลข้อมูลวันที่ในรูปแบบที่ต้องการ เราสามารถใช้เมทอด ToString() ของ DateTime และใช้รูปแบบสตริง (String Format) ในการกำหนดรูปแบบที่ต้องการ


DateTime now = DateTime.Now;
string formattedDate = now.ToString("dd/MM/yyyy"); // แสดงวันที่ในรูปแบบ "dd/MM/yyyy"
Console.WriteLine($"Formatted date: {formattedDate}");

การทำงานกับเวลาช่วยให้โปรแกรมสามารถจัดการกับข้อมูลเวลาและวันที่ได้อย่างถูกต้องและมีประสิทธิภาพ และช่วยในการแสดงข้อมูลวันที่ในรูปแบบที่เหมาะสมในแต่ละการใช้งาน

10. การเขียนและใช้งาน LINQ (Language Integrated Query) การใช้งาน LINQ เพื่อทำการคิวรีข้อมูล และจัดการข้อมูลในรูปแบบที่สะดวกและมีประสิทธิภาพ

LINQ (Language Integrated Query) เป็นส่วนหนึ่งของ C# ที่ช่วยให้ผู้พัฒนาสามารถทำการคิวรี (query) ข้อมูลในแหล่งต่าง ๆ ได้อย่างสะดวกและมีประสิทธิภาพ โดยสามารถใช้งานกับแหล่งข้อมูลที่หลากหลาย เช่น Enumerable, Arrays, Collections, XML, Databases, และอื่น ๆ

นี่คือบางตัวอย่างของการเขียนและใช้งาน LINQ

10.1 การใช้งาน LINQ to Objects LINQ to Objects ใช้สำหรับการคิวรีข้อมูลใน Enumerable, Arrays, Collections และอื่น ๆ ในรูปแบบที่สะดวก


// ตัวอย่างการค้นหาข้อมูลจาก Array โดยใช้ LINQ
string[] fruits = { "apple", "banana", "orange", "grape" };
var query = from fruit in fruits
            where fruit.StartsWith("a")
            select fruit;

foreach (var fruit in query)
{
    Console.WriteLine(fruit);
}

10.2 การใช้งาน LINQ to SQL LINQ to SQL ใช้สำหรับการคิวรีข้อมูลในฐานข้อมูล SQL โดยใช้ LINQ query ภายใน C# และจะแปลง LINQ query ให้เป็น SQL query เพื่อทำงานกับฐานข้อมูล


// ตัวอย่างการค้นหาข้อมูลจากฐานข้อมูลโดยใช้ LINQ
var query = from customer in dbContext.Customers
            where customer.City == "Bangkok"
            select customer;

foreach (var customer in query)
{
    Console.WriteLine(customer.Name);
}

การใช้งาน LINQ ช่วยให้สามารถทำการคิวรีข้อมูลและจัดการข้อมูลในรูปแบบที่สะดวกและเข้าใจง่ายได้มากขึ้น และช่วยลดจำนวนของโค้ดที่ต้องเขียนเองลงไปบนโปรแกรมด้วย

การเรียนรู้พื้นฐานของภาษา C# ซึ่งเป็นภาษาโปรแกรมมิ่ง ที่ถูกพัฒนาขึ้นโดย Microsoft และใช้ในการพัฒนาโปรแกรมต่าง ๆ บนแพลตฟอร์ม .NET Framework .NET Core .NET 5+ ซึ่งเป็นเทคโนโลยีที่กำลังได้รับความนิยมในการพัฒนาโปรแกรมมากขึ้นในปัจจุบัน

การทำความเข้าใจรู้พื้นฐานของภาษา C# จะช่วยให้เราสามารถเรียนรู้และพัฒนาโปรแกรมในภาษา C# ได้อย่างมีประสิทธิภาพและเป็นระเบียบ