Die*_*kes 3 c# linq generics collections comparison
我必须比较两个列表,只知道它们是否包含相同的值.我不打算对这些差异做任何事情.
在C#中实现这一目标的最佳方法是什么?
我知道我可以循环列表,但想知道是否有任何内置的LINQ/extenstion方法来实现这一点,从而提供更好的性能.尝试了Except/Intersect,但不知道它们是否是最合适的.
更新:列表中不会包含任何重复项.
你想如何处理重复?例如,您是否会将{2,1,1}视为与{1,2}相同?(我假设订单无关紧要......否则只需使用SequenceEqual.)
假设你只关心"套"有效,这里有两个选择:
快速而肮脏的方式:
if (!list1.Except(list2).Any() && !list2.Except(list1).Any())
Run Code Online (Sandbox Code Playgroud)
一种稍微清洁的方式:
var set = new HashSet<int>(list1); // Adjust case accordingly
if (set.SetEquals(list2))
{
// Lists were equal
}
Run Code Online (Sandbox Code Playgroud)
需要考虑的一件事是:如果您只想将它们视为集合,那么您可能希望使用集合表示来开始,而不是列表......
| 归档时间: |
|
| 查看次数: |
252 次 |
| 最近记录: |