Để 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).