SkipWhile() bỏ qua các phần tử từ đầu chuỗi miễn là điều kiện đúng, trả về các phần tử còn lại. Khác với Where(), nó dừng bỏ qua ngay khi gặp phần tử đầu tiên không thỏa mãn.
Ví dụ minh họa
Mảng điểm:
int[] marks = { 45, 88, 55, 90, 95, 85 };
Sắp xếp giảm dần, bỏ qua các điểm >= 60:
IEnumerable<int> selMarks = marks.AsQueryable()
.OrderByDescending(s => s)
.SkipWhile(s => s >= 60);
Mã nguồn hoàn chỉnh
using System;
using System.Linq;
using System.Collections.Generic;
public class Demo
{
public static void Main()
{
int[] marks = { 45, 88, 55, 90, 95, 85 };
IEnumerable<int> selMarks = marks.AsQueryable()
.OrderByDescending(s => s)
.SkipWhile(s => s >= 60);
Console.WriteLine("Đã bỏ qua điểm > 60...");
foreach (int res in selMarks)
Console.WriteLine(res);
}
}
Kết quả đầu ra
Đã bỏ qua điểm > 60... 55 45
Giải thích: Sau sắp xếp: 95, 90, 88, 85, 55, 45. Bỏ qua 4 phần tử đầu (>=60), giữ lại 55 và 45.