- vừa được xem lúc

Linq trong C#

0 0 30

Người đăng: LongNguyen

Theo Viblo Asia

1. Định nghĩa

Linq là một query language được dùng để truy vấn dữ liệu từ các nguồn dữ liệu khác nhau (data sources).

Ví dụ:

  • Ta có data source là một object collection như List<T> hoặc một Array

2. Mệnh đề trong linq

  • Trong câu query sẽ có 3 mệnh đề (clause) from, where, select tương tự như khi viết query trong database.

    • from: nguồn lấy dữ liệu (data source)
    • where: điều kiện để lọc dữ liệu. (filter data)
    • select: lấy kết quả

3. Các cách để viết query linq

  • Query Syntax khá giống cách viết câu query trong SQL.
  • Method Syntax sử dụng các hàm hỗ trợ linq của c# .net.

4. Lambda Expressions trong LINQ

  • lambda expressions được dùng để tạo ra một function ẩn danh (anonymous function).

  • productId => productId % 2 == 0 là một biểu thức lambda (Lambda expression) với productId là tham số đầu vào (input parameter) của function ẩn danh.

Ví dụ lấy ra productName từ product id:

5. Sorting: OrderBy, OrderByDecending

6. Tạo ra 1 object mới trong Select

7. Grouping: GroupBy

8. All, Any

  • All xác định tất cả phần tử thỏa một điều kiện hay không
  • Any xác định tồn tại bất kỳ phần tử thỏa một điều kiện cụ thể hay không.

9. Element: First, FirstOrDefault, Single, SingleOrDefault

  • First() Lấy ra phần tử đầu tiên thỏa 1 điều kiện. Nếu không tìm thấy sẽ throw exception
  • FirstOrDefault() tương tự như First() trong trường hợp không có phần tử thỏa điều kiện sẽ trả về null cho kiểu tham chiếu và giá trị default cho kiểu tham trị.
  • Single() trả về một phần tử trong danh sách thỏa điều kiện. Nếu không có phần tử nào hoặc tìm thấy hơn 1 phần tử sẽ throw exception
  • SingleOrDefault() tương tự như Single() nhưng nếu không có phần tử nào sẽ trả về null cho kiểu tham chiếu và giá trị default cho kiểu tham trị. Throw exception nếu kết quả nhiều hơn 1 phần tử.

10. Partitioning: Skip, Take

  • Skip(number) bỏ qua số lượng phần tử trong danh sách và trả về các phần tử còn lại.
  • Take(number) trả về danh sách phần tử theo số lượng tham số number truyền vào tính từ phần tử đầu tiên.

11. Một số hàm phổ biến trong Linq

  • Count(): đếm số phần tử của danh sách
  • Average(): tính trung bình
  • Max(): lấy ra giá trị lớn nhất
  • Min(): lấy ra giá trị nhỏ nhất
  • Sum(): tính tổng các phần tử
  • First(): lấy ra phần tử đầu tiên
  • Last(): lấy ra phần tử cuối cùng ….
  • ToArray(): chuyển danh sách thành array. (ví dụ từ kiểu List sang Array)
  • ToList(): chuyển danh sách thành List. (ví dụ từ kiểu Array sang List)

12. Bài tập

  • Cho danh sách như trên. Viết các câu lệnh linq thỏa mãn:
  1. Lấy ra học sinh có id = 4
  2. Lấy ra danh sách học sinh có tên chứa ‘am’ và sống ở thành phố ‘CA’
  3. Lấy ra tên học sinh có điểm cao nhất
  4. Kiểm tra tất cả học sinh có điểm > 50 không. Nếu lớn hơn thì in ra dòng chữ “Pass”. Không thì in ra dòng chữ “Fail”

Bình luận

Bài viết tương tự

- vừa được xem lúc

Các loại tham chiếu Nullable trong C# (Phần 1)

1. Giới thiệu. C# 8.0 giới thiệu kiểu tham chiếu nullable và kiểu tham chiếu non-nullable cho phép bạn đưa ra các lựa chọn quan trọng về thuộc tính cho các biến kiểu tham chiếu:.

0 0 52

- vừa được xem lúc

Command pattern qua ví dụ !

Command pattern là gì . Command pattern khá phổ biến trong C #, đặc biệt khi chúng ta muốn trì hoãn hoặc xếp hàng đợi việc thực hiện một yêu cầu hoặc khi chúng ta muốn theo dõi các hoạt động. Hơn nữa, chúng ta có thể hoàn tác tác chúng. .

0 0 192

- vừa được xem lúc

Hiểu Liskov Substitution Principle qua ví dụ !

Liskov Substitution Principle là gì . Nguyên tắc đóng mở xác đinh rằng các instance của lớp con có thể thay thế được instance lớp cha mà vẫn đảm bảo tính đúng đắn của chương trình.

0 0 36

- vừa được xem lúc

Creating custom Controls Wpf

Introduction. Wpf/winforms provides various controls like Buttons, Textbox, TextBlock, Labels etc.

0 0 55

- vừa được xem lúc

[P1] Chọn công nghệ nào để xây dựng website?

Hiện nay nhu cầu phát triển website, app tăng rất cao do xu hướng "số hóa 4.0" trong và ngoài nước.

0 0 86

- vừa được xem lúc

Kiểu dữ liệu trong C#

Dẫn nhập. Ở bài BIẾN TRONG C# chúng ta đã tìm hiểu về biến và có một thành phần không thể thiếu khi khai báo biến – Đó là kiểu dữ liệu.

0 0 36