我有一个C#对象,其结构如下
class Source
{
public int Id {get; set;}
public List<Source> Children {get; set;}
}
我想将Source类型的对象(子代数未知)转换为Destination类型的对象
class Destination
{
public int key {get; set;}
public List<Destination> nodes {get; set;}
}
有没有一种方法可以使用LINQ做到这一点,或者我必须遍历所有进程并将其映射.
解决方法:
您可以执行以下递归操作:
public class Source
{
public int Id { get; set; }
public List<Source> Children { get; set; }
public Destination GetDestination()
{
return new Destination
{
nodes = Children.Select(c => c.GetDestination()).ToList(),
key = Id
};
}
}