برای نمایش سلسله مراتبی فرزندان هر ردیف که به متن جستجوی شما مربوط میشود، میتوانید از یک ساختار داده مانند درخت استفاده کنید. در این ساختار، هر گره (Node) شامل اطلاعات ردیف (آی دی و متن) و فرزندان آن میباشد. مثلا :
public class Node{
public int Id { get; set; }
public string Text { get; set; }
public List<Node> Children { get; set; }
public Node(int id, string text)
{
Id = id;
Text = text;
Children = new List<Node>();
}
}
سپس، با استفاده از این کلاس، درختی از گرهها بسازید و سپس جستجوی موردی را انجام دهید. در هر مرحله، اگر یک گره با متن مورد جستجو پیدا شود، این گره را به همراه زیردرخت آن را نمایش دهید. بعنوان مثال :
// ساخت درخت از گرهها
Node root = new Node(1, "Root"); // گره اصلی
Node child1 = new Node(2, "Child 1"); // فرزندان گره اصلی
Node child2 = new Node(3, "Child 2");
Node child3 = new Node(4, "Child 3");
Node grandchild1 = new Node(5, "Grandchild 1"); // فرزندان گره Child 1
Node grandchild2 = new Node(6, "Grandchild 2");
child1.Children.Add(grandchild1);
child1.Children.Add(grandchild2);
root.Children.Add(child1);
root.Children.Add(child2);
root.Children.Add(child3);
// جستجو و نمایش سلسله مراتبی فرزندان
string searchText = "متن جستجوی شما";
SearchAndDisplayHierarchy(root, searchText);
// تابع جستجو و نمایش سلسله مراتبی فرزندان
public void SearchAndDisplayHierarchy(Node node, string searchText)
{
if (node.Text.Contains(searchText))
{
DisplayHierarchy(node);
}
foreach (Node child in node.Children)
{
SearchAndDisplayHierarchy(child, searchText);
}
}
// تابع نمایش سلسله مراتبی فرزندان
public void DisplayHierarchy(Node node, string indent = "")
{
Console.WriteLine(indent + node.Text);
foreach (Node child in node.Children)
{
DisplayHierarchy(child, indent + " ");
}
}
در این کد، یک درخت ساخته شده و سپس با استفاده از تابع SearchAndDisplayHierarchy و تابع DisplayHierarchy، سلسله مراتبی فرزندان ردیفهایی که متن جستجوی شما را دارند نمایش داده میشه. اگر این نمونه با نوع سوالتان مطابقت داشت کد را با دادههای واقعی و ساختار فرزندی خودتان سفارشی کنید.
این توضیحات درک من از نوع سوال شما هست امیدوارم کمک کنه.