如何使用 LINQ 将类型 A 的嵌套数据结构转换为类型 B

本文关键字:类型 数据结构 转换 嵌套 何使用 LINQ | 更新日期: 2023-09-27 18:35:39

>我有以下类型:

class TypeA
{
    public string Name { get; set; }
    public object Value { get; set; } // Holds either a primitive DataType or a List<TypeA>
    public string IrrelevantInformation { get; set; }
}
class TypeB
{
    public string Name { get; set; }
    public object Value { get; set; } //Holds either a primitive DataType or a List<TypeB>
}

我想要的是将 A 型的 Hirarchical 结构转换为 B 型。

我使用传统的递归方法做到了这一点:

private TypeB ConvertToTypeB(TypeA Input)
{
    return new TypeB() { Name = Input.Name, Value = ((Input.Value is List<TypeA>) ? ((List<TypeA>)Input.Value).Select(v=>ConvertToTypeB(v)).ToList() : Input.Value) };
}

我的问题是:如果没有仅使用一个 Linq 查询的 ConvertToTypeB 函数,是否可以完成此操作?

如何使用 LINQ 将类型 A 的嵌套数据结构转换为类型 B

要转换层次结构,需要递归调用。没有办法排除 AtoB 方法。