Xóa duplicate khỏi List: Distinct().ToList() (tạo list mới) hoặc HashSet.
Ví dụ minh họa
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
var list = new List { 50, 90, 50, 100 };
Console.WriteLine("List gốc:");
Console.WriteLine(string.Join(", ", list));
// Cách 1: LINQ Distinct - tạo List mới
var uniqueList = list.Distinct().ToList();
Console.WriteLine("\nSau Distinct():");
Console.WriteLine(string.Join(", ", uniqueList));
// Cách 2: HashSet - tạo List mới
var uniqueList2 = new HashSet(list).ToList();
Console.WriteLine("\nSau HashSet:");
Console.WriteLine(string.Join(", ", uniqueList2));
// Cách 3: Xóa tại chỗ (in-place) - phức tạp hơn
// List không có RemoveDuplicates() built-in
// Cần duyệt ngược hoặc dùng HashSet để track
var seen = new HashSet();
for (int i = list.Count - 1; i >= 0; i--)
{
if (!seen.Add(list[i])) // Add trả về false nếu đã tồn tại
list.RemoveAt(i);
}
Console.WriteLine("\nXóa tại chỗ (in-place):");
Console.WriteLine(string.Join(", ", list));
}
}
Kết quả đầu ra
List gốc: 50, 90, 50, 100 Sau Distinct(): 50, 90, 100 Sau HashSet: 50, 90, 100 Xóa tại chỗ (in-place): 50, 90, 100
Khuyến nghị: Dùng Distinct().ToList() cho code sạch, HashSet cho hiệu năng, in-place chỉ khi bắt buộc tiết kiệm bộ nhớ.