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

Lấy phần tử cuối cùng của mảng trong C#

Phương thức Last() trong LINQ trả về phần tử cuối cùng của một chuỗi (sequence). Ném ngoại lệ nếu chuỗi rỗng.

Ví dụ cơ bản

int[] val = { 5, 8, 15, 25, 40, 55, 80, 100 };
int last = val.AsQueryable().Last();  // 100

Mã nguồn hoàn chỉnh

using System;
using System.Collections.Generic;
using System.Linq;

class Demo
{
    static void Main()
    {
        int[] val = { 5, 8, 15, 25, 40, 55, 80, 100 };
        int last_num = val.AsQueryable().Last();
        Console.WriteLine("Last element: " + last_num);
    }
}

Kết quả

Last element: 100

Các biến thể Last

Phương thứcMô tảKhi rỗng
Last()Phần tử cuốiNém InvalidOperationException
LastOrDefault()Phần tử cuối hoặc default(T)Trả về 0/null
Last(predicate)Phần tử cuối thỏa điều kiệnNém exception
LastOrDefault(predicate)Phần tử cuối thỏa hoặc defaultTrả về default

Ví dụ Last với điều kiện

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int lastEven = numbers.Last(n => n % 2 == 0);  // 8

Hiệu suất: Last() vs Index

// Mảng/List - O(1) trực tiếp
int last = arr[arr.Length - 1];
int last = list[list.Count - 1];

// IEnumerable tổng quát - O(n) phải duyệt hết
int last = enumerable.Last();

Lưu ý

  • Với mảng/List, dùng index [^1] (C# 8+) hoặc [Count-1] nhanh hơn LINQ.
  • Last() duyệt toàn bộ chuỗi nếu không phải IList.
  • Kiểm tra Any() trước nếu không chắc chắn có phần tử.