Ngôn ngữ LINQ - Toán tử lọc OfType

Toán tử lọc OfType trong LINQ

Toán tử OfType lọc danh sách dựa trên khả năng ép kiểu một phần tử trong danh sách thành kiểu được định.

Toán tử OfType trong cú pháp truy vấn LINQ

Sử dụng toán tử OfType để lọc danh sách dựa trên kiểu dữ liệu của từng phần tử.

IList mixedList = new ArrayList();
mixedList.Add(0);
mixedList.Add("One");
mixedList.Add("Two");
mixedList.Add(3);
mixedList.Add(new Student() { StudentID = 1, StudentName = "Bill" });

var stringResult = from s in mixedList.OfType<string>()
                   select s;

var intResult = from s in mixedList.OfType<int>()
                select s;

var stdResult = from s in mixedList.OfType<Student>()
                select s;

foreach (var str in stringResult)
{
	Console.WriteLine(str);
}

foreach (var integer in intResult)
{
	Console.WriteLine(integer);
}

foreach (var std in stdResult)
{
	Console.WriteLine(std.StudentName);
}

Đây là kết quả khi biên dịch và thực thi chương trình:

One
Two
0
3
Bill

Xem ví dụ

Phương thức mở rộng OfType trong cú pháp phương thức LINQ.

Bạn có thể sử dụng phương thức mở rộng OfType<TResult>() trong cú pháp phương thức LINQ như bên dưới:

var stringResult = mixedList.OfType<string>();

Đây là kết quả khi biên dịch và thực thi chương trình:

One
Two

Những điểm cần nhớ về toán tử OfType trong LINQ

  1. Toán tử OfType lọc danh sách dựa trên một kiểu dữ liệu được chỉ định.
  2. Các phương thức mở rộng OfType có thể được gọi nhiều lần trong một truy vấn LINQ.

Truy cập MSDN để biết thêm thông tin về các toán tử filtering trong LINQ.