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);
}
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; }
}
}
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.