1

私は以下のタイプを持っています:

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>
}

私が欲しいのは、TypeA の階層構造を TypeB に変換することです。

私は従来の再帰的な方法を使用してそれを行いました:

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) };
}

私の質問は次のとおりです。これは、1 つの Linq クエリのみを使用して、ConvertToTypeB 関数なしで実行できますか?

4

1 に答える 1

1

階層構造を変換するには、再帰呼び出しが必要です。AtoB メソッドを除外する方法はありません。

于 2012-05-30T10:56:19.857 に答える