Kiểm tra phần tử có tồn tại không
Thuộc phần Logic và luồng chương trình trong hành trình C# của Coddy. Bài học 59 trên 66.
Phương thức Contains(element) kiểm tra xem một phần tử cụ thể có tồn tại trong HashSet hay không. Phương thức trả về true nếu tìm thấy phần tử đó, nếu không thì trả về false.
Tạo một HashSet trống:
HashSet<string> fruits = new HashSet<string>();Thêm một vài phần tử vào HashSet:
fruits.Add("Apple");
fruits.Add("Banana");Kiểm tra xem phần tử có tồn tại hay không:
bool hasApple = fruits.Contains("Apple"); // Trả về true
bool hasOrange = fruits.Contains("Orange"); // Trả về falseBạn có thể dùng kết quả trong câu lệnh điều kiện (conditional statement):
if (fruits.Contains("Apple"))
{
Console.WriteLine("Apple is in the set");
}Thử thách
DễTạo một phương thức có tên ElementExists nhận hai đối số:
- Một HashSet các chuỗi (
set) - Một chuỗi (
element) cần kiểm tra
Phương thức cần kiểm tra xem phần tử có tồn tại trong tập hợp hay không rồi trả về một chuỗi thông báo:
- Nếu phần tử tồn tại, trả về "The element 'X' exists in the set"
- Nếu phần tử không tồn tại, trả về "The element 'X' does not exist in the set"
Trong đó, 'X' là giá trị phần tử thực tế đang được kiểm tra.
Tự làm thử
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Program
{
public static string ElementExists(HashSet<string> set, string element)
{
// Viết code của bạn ở đây
return "";
}
public static void Main()
{
// Đọc dòng đầu tiên để kiểm tra xem có ở định dạng JSON không
string firstLine = Console.ReadLine();
string elementToCheck = Console.ReadLine();
HashSet<string> set = new HashSet<string>();
// Kiểm tra xem đầu vào (input) có ở định dạng mảng (array) JSON không
if (firstLine != null && firstLine.StartsWith("[") && firstLine.EndsWith("]"))
{
try
{
// Trích xuất nội dung giữa hai dấu ngoặc vuông
string arrayContent = firstLine.Substring(1, firstLine.Length - 2);
// Dùng regex để tìm tất cả các chuỗi (string) trong dấu ngoặc kép
MatchCollection matches = Regex.Matches(arrayContent, @"""([^""]*)""");
foreach (Match match in matches)
{
// Thêm nhóm đã bắt được, không gồm dấu ngoặc kép
if (match.Groups.Count > 1)
{
set.Add(match.Groups[1].Value.Trim());
}
}
// Kiểm tra xem phần tử (element) có ở định dạng chuỗi JSON không
Match elementMatch = Regex.Match(elementToCheck, @"""([^""]*)""");
if (elementMatch.Success && elementMatch.Groups.Count > 1)
{
elementToCheck = elementMatch.Groups[1].Value;
}
}
catch (Exception ex)
{
Console.WriteLine($"Error parsing JSON input: {ex.Message}");
return;
}
}
else
{
// Xử lý đầu vào dạng truyền thống, phân tách bằng dấu phẩy
string[] elements = firstLine.Split(',');
foreach (string element in elements)
{
set.Add(element.Trim());
}
}
string result = ElementExists(set, elementToCheck);
Console.WriteLine(result);
}
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Logic và luồng chương trình
1Mảng nhiều chiều
Cơ bản về mảng 2 chiềuKhai báo và khởi tạo mảng 2 chiềuTruy cập phần tử mảng 2 chiềuVòng lặp lồng nhau với mảng 2 chiềuMảng răng cưaCác phép toán ma trận thường gặpÔn tập: mảng nhiều chiều4Kỹ thuật điều khiển luồng
Lệnh trả về sớmMệnh đề bảo vệCâu lệnh nhảy (goto)Break và continueLàm phẳng các câu lệnh điều kiện lồng nhau7Toán tử logic nâng cao
Đánh giá ngắn mạchToán tử logic có điều kiệnĐộ ưu tiên của toán tửÔn tập: toán tử nâng cao2Ra quyết định nâng cao
Nhiều điều kiệnLogic Boolean phức tạpSo sánh if và switchCâu lệnh switch lồng nhauÔn tập về ra quyết định nâng cao5Xử lý ngoại lệ
Cơ bản về try-catchCác loại ngoại lệNhiều khối catchLàm việc với tệpKhối finallyUsing hay try-finallyNgoại lệ tùy chỉnhÔn tập: xử lý lỗi8Hệ thống phân tích dữ liệu
Thiết lập thu thập dữ liệuLogic nhập dữ liệu11HashSet phần 1
HashSet là gì?Thêm phần tửXóa phần tửKiểm tra phần tử có tồn tại khôngRỗng và kích thướcÔn tập: HashSet3Cải tiến vòng lặp
Hiệu suất vòng lặpLặp qua dữ liệu phức tạpTừng kiểu vòng lặpTái cấu trúc vòng lặpÔn tập: vòng lặp tối ưu6Xử lý null
Cơ bản về tham chiếu nullKiểu giá trị có thể nullCác mẫu kiểm tra nullLập trình phòng vệÔn tập về an toàn với nullTự luyện tập: Trình biên dịch C# online