如何比较两个递归列表

时间:2014-01-10 12:59:39

标签: c# recursion

我尝试比较两个通用列表并找到列表之间的差异。这些列表是递归的,因此一个分支可能有许多子项,依此类推。我想找到新的,更新的和删除的项目。我认为这是一个非常典型的问题,可能会有类似的问题,但如果我找不到这些问题。

所以我的列表是这样的(json格式,希望你明白了):

{
    "Item": [{
        "Name": "Nimi1",
        "ItemId": "1",
        "Item": [{
            "Name": "Name1.1",
            "ItemId": "2",
            "ParentId": 1,
            "Item": [{
                "Name": "Name1.1.1",
                "ParentId": 2,
                "ItemId": "3",
                "Item": []
            },
            {
                "Name": "Name1.1.2",
                "ParentId": 2,
                "ItemId": "4",
                "Item": []
            }]
        },
        {
            "Name": "Name1.2",
            "ParentId": 1,
            "ItemId": "5",
            "Item": [{
                "Name": "Name1.2.1",
                "ItemId": "6",
                "ParentId": 5,
                "Item": []
            }]
        }]
    }]
}

我还有其他基本结构相似的清单。我希望找到差异,例如当某些元素丢失或有新块或某些块已更改时。

我发现了非常相似的案例Saving changes only between two hierarchical List,但我认为它并不考虑递归。谁能帮我?

0 个答案:

没有答案