当前位置: 首页 > 知识库问答 >
问题:

比较两个泛型列表差异的最快方法

沈博达
2023-03-14
    null
var list1 = list.Where(i => !list2.Contains(i)).ToList();
var list2 = list2.Where(i => !list.Contains(i)).ToList();

但这并没有我想要的那么好。因为我需要处理大量的列表,所以有没有想过让它更快、更少的资源消耗?

共有1个答案

诸葛利
2023-03-14

使用:

var firstNotSecond = list1.Except(list2).ToList();
var secondNotFirst = list2.Except(list1).ToList();

我怀疑有些方法实际上会比这稍微快一点,但即使这样也会比你的O(N*M)方法快得多。

如果您想将这些组合起来,可以使用上面的语句创建一个方法,然后创建一个return语句:

return !firstNotSecond.Any() && !secondNotFirst.Any();
 类似资料:
  • 问题内容: 我正在尝试创建一个包含2个列表并返回仅具有两个列表差异的列表的函数。 例: 结果应打印 到目前为止的功能: 第一个for循环将其排序,第二个将重复项删除。问题是结果 不是,所以不能完全删除重复项吗?我可以添加些什么来做到这一点。我不能使用任何特殊模块,.sort,set或其他任何东西,而只是基本地循环。 问题答案: 基本上,您希望将一个元素添加到新列表中(如果一个元素存在而另一个元素中

  • 问题内容: 我需要对照事务性归档表检查活动表,但我不确定执行此操作的最快方法… 例如,假设我的活动表由以下各列组成: Term CRN Fee Level Code 我的存档表将具有相同的列,但也具有存档日期,因此我可以看到活动表在给定日期具有的值。 现在…我将如何编写查询以确保活动表的值与存档表中的最新条目相同? PS我更愿意在SQL中处理此问题,但是PL / SQL如果速度更快,也是一种选择。

  • 问题内容: 与oracle diff 相同:如何比较两个表?除了在MySQL。 假设我有两个表t1和t2,它们的布局相同,但是可能包含不同的数据。 区分这两个表的最佳方法是什么? 更准确地说,我正在尝试找出一个简单的SQL查询,该查询告诉我t1中某一行的数据是否不同于t2中相应行的数据 看来我不能使用相交也不能减去。当我尝试 我收到错误代码: [错误代码:1064,SQL状态:42000]您的SQ

  • 问题内容: 我有一个脚本可以更新5-10列的数据,但有时起始csv与结束csv相同,因此我不想写相同的csvfile,而是希望它不执行任何操作… 如何比较两个数据框以检查它们是否相同? 有任何想法吗? 问题答案: 您还需要小心创建DataFrame的副本,否则csvdata_old将使用csvdata更新(因为它指向相同的对象): 要检查它们是否相等,可以在此答案中使用assert_frame_e

  • 有没有一个相当标准的C(Linux)函数,或者一种代码高效但性能良好的方法来比较任意大小的两个整数? 我正在寻找一些参数为int intcmp(const void*a,const void*b,size\t size)的东西,它适用于任何实际大小的整数。(如果架构是big-endian的话(我认为)可以工作。) 我倾向于使用这样的实现(通过高效整数比较函数的改进),但它不是完全通用的,并且有足够

  • 问题内容: 我有两个列表(不是Java列表,可以说两列) 例如 我想要一个返回多少个相同元素的方法。对于此示例,它应该为3,并且应该返回列表的相似值和不同的值。 如果是,我应该使用哈希图,然后用什么方法获得结果? 请帮忙 PS:这不是学校作业:)因此,如果您只是指导我就足够了 问题答案: 编辑 这是两个版本。一种使用,另一种使用 比较它们并从中创建您自己的版本,直到获得所需的内容。 这应该足以覆盖