Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức TakeWhile trong C#


Giới thiệu

Phương thức TakeWhile() trong LINQ trả về các phần tử từ đầu chuỗi cho đến khi một điều kiện (predicate) trả về false. Nó dừng lại ngay tại phần tử đầu tiên không thỏa mãn điều kiện.

Ví dụ cơ bản

Mảng đầu vào:

int[] arr = { 25, 40, 65, 70 };

Lấy các phần tử nhỏ hơn 30:

var val = arr.TakeWhile(ele => ele < 30);

Ví dụ hoàn chỉnh

using System;
using System.Linq;

public class Demo
{
    public static void Main()
    {
        int[] arr = { 25, 40, 65, 70 };
        var val = arr.TakeWhile(ele => ele < 30);
        foreach (int res in val)
        {
            Console.WriteLine(res);
        }
    }
}

Kết quả

25

Sự khác biệt với Where()

  • Where() lọc tất cả phần tử thỏa mãn điều kiện ở bất kỳ vị trí nào.
  • TakeWhile() chỉ lấy phần tử từ đầu chuỗi và dừng lại khi gặp phần tử đầu tiên không thỏa mãn.

Ví dụ so sánh

int[] arr = { 25, 40, 15, 70 };
// TakeWhile: chỉ lấy 25 (dừng tại 40)
var takeWhile = arr.TakeWhile(x => x < 30); // {25}
// Where: lấy tất cả < 30
var where = arr.Where(x => x < 30); // {25, 15}

Lưu ý

  • Có nạp chồng TakeWhile(Func<T, int, bool>) cho phép truy cập chỉ số (index) của phần tử.
  • Phương thức thực thi trì hoãn (deferred execution).