gpt4 book ai didi

c# - 在 Linq 中处理 HashSet 时我应该使用 Except 还是 Contains

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:00 24 4
gpt4 key购买 nike

看看这个:

 var query = myDic.Select(x => x.Key).Except(myHashSet);

 var query = myDic.Select(x => x.Key).where(y=>!myHashSet.Contains(y))

我想在第一种情况下,由于多态性,Contains 的 O(1) 版本将被调用。不过不知道 except

更新

在我的例子中,Exept 也是 O(1)。

why linq's `except` extension method does not have Except<TSource> Method (IEnumerable<TSource>,HashSet<TSource>) overload?

最佳答案

如果您的 myDic 是普通的 .NET 词典,那么我将使用

myDic.Keys.Except(myHashSet)

为了可读性。

说到您的选择,第一个是 O(n+m) 而第二个是 O(n),这两个都不会告诉您哪个最先完成您的集合大小。如有疑问,请两匹马比赛。

@sehe 的答案也是 O(n+m),但很可能它会比您的 O(n+m) 解决方案更快。

关于c# - 在 Linq 中处理 HashSet 时我应该使用 Except 还是 Contains,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7211349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com