我在两个ArrayList arrayListA和arrayListB中有数据。在C#中检查两个ArrayList之间的差异
我想检查这两个arrayLists是否有区别。
,所以我做这个代码:
ArrayList diff = new ArrayList();
foreach (string[] a in arrayListB)
{
if(!arrayListA.Contains(a))
{
diff.Add(a);
}
}
所以在这里我的问题,当我运行程序。 arrayListB中的所有数据都被添加到ArrayList diff中。它应该只添加仅在arrayListA而不是arrayListB中的数据,是否正确?
出了什么问题?
这是我运行程序后的结果。 listbox a是arrayListA中的数据,listbox B是arrayListB中的数据,而listbox diff是diff中的数据。
我已经输入System.Linq。
但我没有得到我的列表的“Where”属性。
“where”属性。我不明白。我需要输入任何参考来使用它? –
哪里是扩展方法。简单地说 - 它适用于一个集合并根据一定的条件进行过滤(给定每个元素的名称为'a',只取得满足'!listB.Any(a.SequenceEqual)'的那个'。Any也是一个扩展方法(它们非常流行,tehe),它返回至少一个元素是否满足条件(每个元素正在'a.SequenceEqual'中测试)。 – SimpleVar
@QusyaireEzwan哦,要使用它们,你需要添加引用到'System.Linq' - 添加到回答。还添加了回答使用Linq扩展方法的代码的翻译,所以你可以完全理解它们是如何工作的以及它们在做什么 – SimpleVar