将嵌套数组类转换为另一个嵌套数组类 c#

图梅洛

我有 2 个看起来完全相同但位于不同命名空间的类。嵌套类的一个属性是它自己的数组,它允许属性嵌套/递归(有点像命令模式)

我正在尝试将类从一个命名空间转换/转换为另一个命名空间中的类。我有以下代码:

    namespace Common.Class
    {
        public class Root
        {
            public string Key { get; set; }
            public Child[] Children { get; set; }
            public class Child
            {
                public string Content { get; set; }
                public Child[] RecursionChild { get; set; }
            }
        }
    }
    namespace Uncommon.Class
    {
        class Root
        {
            public string Key { get; set; }
            public Child[] Children { get; set; }
            public class Child
            {
                public string Content { get; set; }
                public Child RecursionChild { get; set; }
            }
        }
    }

主程序

        static void Main(string[] args)
        {
            var commonRoot = new Common.Class.Root
            {
                Key = "1234-lkij-125l-123o-123s",
                Children = new Common.Class.Root.Child[]
                {
                    new Common.Class.Root.Child
                    {
                        Content = "Level 1 content",
                        RecursionChild = new Common.Class.Root.Child[] { }
                    }
                }
            };


            var uncommonRoot = new Uncommon.Class.Root
            {
                Key = commonRoot.Key,
                Children = commonRoot.Children // here I get error: Cannot implicitly convert type 'Common.Class.Root.Child[]' to 'Uncommon.Class.Root.Child[]'
            };
        }
约翰吴

你也需要转换孩子。

因为你有那个递归子,你不能只用匿名函数来完成它,因为函数必须能够调用自己,你需要一个名字。所以我们需要引入一个实名的局部函数,例如Converter.

Uncommon.Root.Child Converter(Common.Root.Child source) => new Uncommon.Root.Child
{
    Content = source.Content, 
    RecursiveChild = Converter(source.ResursiveChild) 
};

var uncommonRoot = new Uncommon.Class.Root
{
    Key = commonRoot.Key,
    Children = commonRoot.Children.Select(Converter).ToArray();
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#类的嵌套数组

C# 将数据表转换为 JSON 嵌套数组格式

在C ++中,如何在另一个嵌套类中使用嵌套类类型(两个嵌套类在同一外部类下)

C中的嵌套数组结构

使用 C# 嵌套数组

将嵌套数组与另一个数组进行比较

我们可以通过 C++ 中的运算符重载将一个类数据转换为另一个类吗?

C++ 函数绑定 - 强制将 `this` 强制转换为另一个类可能吗?

C ++字符串类如何将变量转换为另一个变量?

在C#中从一个数组转换为另一个数组

如何在mongodb的对象中更新我的另一个嵌套数组的嵌套数组

如何在 MongoDB 中的另一个嵌套数组中更新嵌套数组中的对象

将嵌套数组转换为JSON

将嵌套数组转换为对象

将嵌套数组转换为对象

将嵌套数组转换为对象

在另一个类中创建的对象的C ++数组

C ++:使用另一个类中的参数初始化对象数组

Objective-c:如何从另一个类访问变量或数组?

在另一个类中分配对象数组(C ++)

如何使用指针C ++将一个类的析构函数转换为另一个类?像单向列表容器类和节点类之类的东西

C# 只允许一个类为一个属性调用另一个类的 setter(或者让类知道它是否存储在另一个类的数组中)

删除基于另一个数组的嵌套数组

numpy索引嵌套数组,其中包含来自另一个数组的索引

使用另一个数组和PHP对嵌套数组进行排序

查找数组是否在另一个嵌套数组中

javascript循环嵌套数组并根据另一个数组提取属性

将嵌套数组与另一个数组进行比较,并指定值是否相同

如何将特定索引的数组分配给另一个嵌套数组?