如何在C#中比较包含json值的两个列表以进行单元测试

如何在C#中比较包含json值的两个列表以进行单元测试,c#,unit-testing,C#,Unit Testing,如何比较c#中的两个列表? 第一列表数据 DBvalues = [{ "_id" : ObjectId("5d98298f9110f5f13812f3c1"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "ab085347019069" }, { "_id" : ObjectId("5d98298f9110f5f13812f3c0"), "PartName" : null, "MAP" :

如何比较c#中的两个列表? 第一列表数据

DBvalues = [{ "_id" : ObjectId("5d98298f9110f5f13812f3c1"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "ab085347019069" }, { "_id" : ObjectId("5d98298f9110f5f13812f3c0"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "085347014064" }]
actualExcelvalues = [{ "_id" : ObjectId("5d98298f9110f5f13812f3c0"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "085347014064" }, { "_id" : ObjectId("5d98298f9110f5f13812f3c1"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "ab085347019069" }]
第二列表数据

DBvalues = [{ "_id" : ObjectId("5d98298f9110f5f13812f3c1"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "ab085347019069" }, { "_id" : ObjectId("5d98298f9110f5f13812f3c0"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "085347014064" }]
actualExcelvalues = [{ "_id" : ObjectId("5d98298f9110f5f13812f3c0"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "085347014064" }, { "_id" : ObjectId("5d98298f9110f5f13812f3c1"), "PartName" : null, "MAP" : null, "MPN" : null, "IsActive" : true, "Gtin" : "ab085347019069" }]

不考虑它们的顺序/索引。

如果您指的是字符串,则它们的作用相等

如果您指的是对象,那么我的测试技术是将两者序列化为缩进json并进行比较。虽然很粗糙,但确实有用



在我当前的设置中,我有一个静态的
AreEqual(T expected,T actual)
,它将两者序列化,然后逐行比较,以在比较失败时显示更好的输出

您到底想比较什么:节点的数量和名称?或节点值?比较第一个列表中的对象id(其他字段)是否与第二个列表中的相同。其他键和值相同