C#中List中自带的差集计算方法
List 继承了Enumerable ,Enumerable 中有一个Except方法
它有两个实现:
第一个实现是通过使用默认的相等比较器对值进行比较,生成两个序列的差集。
第二个实现是通过使用指定的 IEqualityComparer 对值进行比较,生成两个序列的差集。
简单数值对比
这是用默认的相等对比器
这种方式一般都是用来比较简单数组或者字符串内容
double[] numbers1 = { 2.0, 2.0, 2.1, 2.2, 2.3, 2.3, 2.4, 2.5 };
double[] numbers2 = { 2.2 };
IEnumerable<double> onlyInFirstSet = numbers1.Except(numbers2);
foreach (double number in onlyInFirstSet)
Console.WriteLine(number);
问题:
如果list集合类的差异的话,直接使用List中的Except方法,会发现全部都不一样。这就是问题。
结论:
解决方案:可以把集合类事先转换为ToJson的字符串,就可以使用List中的Except方法。