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

Kiểm tra giá trị có trong LinkedList trong C#

Giới thiệu

Phương thức Contains(T value) của LinkedList<T> kiểm tra xem danh sách liên kết có chứa một giá trị cụ thể hay không. Phương thức này thực hiện duyệt tuyến tính từ đầu đến cuối (O(n)).

Ví dụ 1

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        LinkedList linkedList = new LinkedList();
        linkedList.AddLast(25);
        linkedList.AddLast(50);
        linkedList.AddLast(100);
        linkedList.AddLast(200);
        linkedList.AddLast(400);
        linkedList.AddLast(500);
        linkedList.AddLast(550);
        linkedList.AddLast(600);
        linkedList.AddLast(800);
        linkedList.AddLast(1200);

        Console.WriteLine("Số lượng nút = " + linkedList.Count);
        foreach (int val in linkedList)
        {
            Console.WriteLine(val);
        }

        Console.WriteLine("LinkedList có chứa nút 800? " + linkedList.Contains(800));
    }
}

Kết quả

Số lượng nút = 10
25
50
100
200
400
500
550
600
800
1200
LinkedList có chứa nút 800? = True

Ví dụ 2

using System;
using System.Collections.Generic;

public class Demo
{
    public static void Main()
    {
        LinkedList linkedList = new LinkedList();
        linkedList.AddLast("ABC");
        linkedList.AddLast("BCD");
        linkedList.AddLast("CDE");
        linkedList.AddLast("DEF");
        linkedList.AddLast("EFG");
        linkedList.AddLast("FGH");
        linkedList.AddLast("GHI");
        linkedList.AddLast("HIJ");
        linkedList.AddLast("IJK");

        Console.WriteLine("Số lượng nút = " + linkedList.Count);
        foreach (string val in linkedList)
        {
            Console.WriteLine(val);
        }

        Console.WriteLine("LinkedList có chứa nút 'KLM'? " + linkedList.Contains("KLM"));
    }
}

Kết quả

Số lượng nút = 9
ABC
BCD
CDE
DEF
EFG
FGH
GHI
HIJ
IJK
LinkedList có chứa nút 'KLM'? = False

Lưu ý quan trọng

  • Contains() duyệt từ First đến Last, độ phức tạp O(n).
  • LinkedList không hỗ trợ truy cập theo chỉ mục (indexer).
  • Thêm/xóa ở đầu/cuối O(1) nếu có tham chiếu nút, nhưng tìm kiếm O(n).
  • Nếu cần tìm kiếm thường xuyên, cân nhắc HashSet<T> hoặc Dictionary<TKey, TValue> song song.
  • LinkedList phù hợp cho thao tác chèn/xóa nhiều ở giữa danh sách.