あなたがこのように欲しいものを実現することができます。
class Category
{
ArrayList Next;
string name;
public Category()
{
name = "";
Next = new ArrayList();
}
public Category(string name)
{
this.name = name;
Next = new ArrayList();
}
public void Add(string name)
{
Next.Add(new Category(name));
}
public Category Find(string name)
{
Category a;
foreach (Category c in Next)
{
if (c.name == name)
return c;
a = c.Find(name);
if (a != null) return a;
}
return null;
}
// other functions you need
}
そして、このような使用のこと:
Category c = new Category();
c.Add("books");
Category a;
a = c.Find("books");
a.Add("SF");
a.Add("drama");
if (c.Find("SF") != null)
Console.WriteLine("found SF");
if (c.Find("other") == null)
Console.WriteLine("did not find other");