私はこれに似たクラスを持っています:
public class Channel
{
public string Title {get;set;}
public Guid Guid {get;set;}
public List<Channel> Children {get;set;}
// a lot more properties here
}
このクラスツリーを同じツリー構造に変換する必要がありますが、プロパティが少なくなっています(プロパティの名前が異なります)。
public class miniChannel
{
public string title {get;set;}
public string key {get;set;}
public List<miniChannel> children {get;set;}
// ALL THE OTHER PROPERTIES ARE NOT NEEDED
}
次の関数を使用すると、ツリーを簡単にトラバースできると思いました。
public IEnumerable<MyCms.Content.Channels.Channel> Traverse(MyCms.Content.Channels.Channel channel)
{
yield return channel;
foreach (MyCms.Content.Channels.Channel aLocalRoot in channel.Children)
{
foreach (MyCms.Content.Channels.Channel aNode in Traverse(aLocalRoot))
{
yield return aNode;
}
}
}
関数を変更して、を返すことができるようにするにはどうすればよいIEnumerable<miniChannel>
ですか、あるいは、それを行う他の方法はありますか?ソースクラスを変更できないことに注意してくださいChannel