2017-02-16 60 views
-1

考虑下面的两个列表,最好的比较方法是什么?比较两个列表内容的最有效方法是什么?

var a = new List<string>() { "2016", "2017" }; 
var b = new List<string>() { "2017", "2018" }; 
+0

名单是否有序?内存效率或运行效率? (或者两者都有?更重要的是什么?)你需要知道它们是不同的还是完整的差异清单? –

+2

你需要/想要什么样的比较结果? –

+0

@OriNachum独立于订单,运行效率,我需要知道他们是不同的。谢谢:) –

回答

0

对于独立的顺序比较:

bool result = a.Count == b.Count && a.Intersect(b).Count() == a.Count; 
+1

直接从文档:“SetEquals'方法忽略重复的条目和另一个参数中元素的顺序。”所以你需要了解这些规则是否适用于OP。看起来好像命令不是问题,但重复可能会(通过散列集减轻不允许重复)。 –

+0

@AdamHouldsworth“独立于订单”让我觉得他们没有订购。 – Slai

+1

我知道,我评论的同样多 - 我只是添加更多的信息给一行代码的答案。 –

0

这为我工作(但名单必须是有序的和独特的):

a.SequenceEqual(b) 

谢谢你们的努力! :)

+0

如果列表的排列顺序不同,您应该在问题中指定该列表。因此,而不是发布这个微不足道的答案,你最好删除整个帖子。 –

+0

@IvanStoev它是在评论中指定的...... :) –

+0

@AndréLuisTosatodaCruz,你说“独立于订单”,这意味着它们没有订购,并且没有提到鲜明的。 ({1,1}!= {1}) –

相关问题