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

Chương trình C# tìm sự khác biệt giữa hai danh sách

Để tìm các phần tử chỉ có trong danh sách đầu tiên mà không có trong danh sách thứ hai, C# cung cấp phương thức mở rộng Except() trong namespace System.Linq.

Ví dụ minh họa

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

public class Demo
{
    public static void Main()
    {
        List list1 = new List { "A", "B", "C", "D" };
        List list2 = new List { "C", "D" };

        Console.WriteLine("Danh sách đầu tiên:");
        list1.ForEach(x => Console.WriteLine(x));

        Console.WriteLine("\nDanh sách thứ hai:");
        list2.ForEach(x => Console.WriteLine(x));

        // Tìm phần tử chỉ có trong list1
        IEnumerable difference = list1.Except(list2);

        Console.WriteLine("\nSự khác biệt (chỉ có trong list1):");
        foreach (string value in difference)
        {
            Console.WriteLine(value);
        }
    }
}

Kết quả đầu ra

Danh sách đầu tiên:
A
B
C
D

Danh sách thứ hai:
C
D

Sự khác biệt (chỉ có trong list1):
A
B

Giải thích: Phương thức Except() trả về các phần tử xuất hiện trong tập hợp đầu tiên nhưng không xuất hiện trong tập hợp thứ hai. Đây là phép trừ tập hợp (set difference).