Linq trong C#

LINQ (Language Integrated Query) là một tính năng mạnh mẽ trong C# cho phép bạn truy vấn và thao tác với dữ liệu một cách dễ dàng và trực quan. LINQ hỗ trợ nhiều nguồn dữ liệu khác nhau như mảng, danh sách, cơ sở dữ liệu và XML.

  1. Định nghĩa Linq
  2. Các kiểu Linq hay sử dụng
  3. Cú pháp truy vấn Linq c#

 1. Định nghĩa Linq

Linq là một đối tượng được các lập trình viên cấp cao Microsoft tạo ra, từ đó các lập trình viên khác sử dụng thư viện này truy vấn dữ liệu từ các nguồn dữ liệu khác nhau, chủ yếu là các kiễu dữ liệu dạng array đối tượng, list.

Đối tượng trong lập trình c# mà Ling Q truy vấn là: Object Collection, XML, DataSet, SQL ...

 Ví dụ: truy vấn dữ liệu từ 1 List

// khai báo biến kiểu List
var DanhSachSo = new List<int>{5,7,8,2,1};
// truy vấn các giá trị trong biến DanhSachSo với điều kiện <5
var DanhSachSo_NhoHon5 = from  So in DanhSachSo
                       where So<5
                       select So;
// In các phần từ sau khi truy vấn <5
foreach(var so in DanhSachSo_NhoHon5 )
{
Console.WriteLine(so);
}

Đặt câu hỏi code

2. Các kiểu Linq hay sử dụng

  • LINQ to Objects: Truy vấn các tập hợp trong bộ nhớ như mảng hoặc danh sách.
  • LINQ to SQL: Truy vấn cơ sở dữ liệu SQL Server.
  • LINQ to XML: Truy vấn và thao tác với dữ liệu XML.

 

3. Cú pháp truy vấn Linq c#

Cách 1: cú pháp from where select

var bientrave =
from TenCot in BienDanhSach
where TenCot Biểu_thức_so_sánh
select TenCot

Nếu là kiểu object có nhiều thuộc tính

var bientrave =
from  Obj in BienDanhSachDoiTuong
where  Obj.TenCot Biểu_thức_so_sánh
select  Obj

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LinqVD1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var dsNguoiDung = new List<NguoiDung>
            {
                new NguoiDung{Ten="A",MatKhau="123",Nhom="admin" },
                new NguoiDung{Ten="B",MatKhau="123",Nhom="user" },
                new NguoiDung{Ten="C",MatKhau="123",Nhom="user" }
            };

            // cách 1: lọc toàn bộ người dùng thuộc nhóm user
            var dsNguoiDung_User = from obj in dsNguoiDung
                                   where obj.Nhom == "user"
                                   select obj;
            foreach(var nguoidung in dsNguoiDung_User)
            {
                Console.WriteLine("Ten: "+ nguoidung.Ten);
            }
            // cách 2: dùng phương thức Where
            var dsNguoiDung_Admin = dsNguoiDung.Where(objNguoiDung => objNguoiDung.Nhom=="admin");
            foreach (var nguoidung in dsNguoiDung_Admin)
            {
                Console.WriteLine("Ten: " + nguoidung.Ten);
            }
            // Lấy giá trị 1 thuộc tính duy nhất
            //
            var dsNguoiDung_Admin_MK = dsNguoiDung.Where(objNguoiDung => objNguoiDung.Nhom == "admin")
                                        .Select(objS => objS.MatKhau);
            foreach (var mk in dsNguoiDung_Admin_MK)
            {
                Console.WriteLine("Mat khau: " + mk);
            }
        }
    }
    class NguoiDung
    {
        public string Ten { set; get; }
        public string MatKhau { set; get; }
        public string Nhom { set; get; }


    }
}


  

Cách 2: cú pháp sử dụng phương thức đã có từ Ling

DanhSachSo.where(TenCot=>TenCot Biểu_thức_so_sánh);
TenCot: tự người dùng định nghĩa


var DanhSachSo = new List<int>{5,7,8,2,1};
var sonho_5 = DanhSachS.where(so=>so<5);

LINQ (Language Integrated Query) là một tính năng mạnh mẽ trong C# cho phép bạn truy vấn và thao tác với dữ liệu một cách dễ dàng và trực quan. LINQ hỗ trợ nhiều nguồn dữ liệu khác nhau như mảng, danh sách, cơ sở dữ liệu và XML.