gpt4 book ai didi

c# - 将 ICollection 成员与其自身进行比较

转载 作者:行者123 更新时间:2023-11-30 21:09:43 28 4
gpt4 key购买 nike

是否有任何最便宜的方法来比较 ICollection 与自身。

这是我的代码:

        public IEnumerable<Pet> speciesChecker()
{
foreach (Pet pet in _pets)
{
bool wantedSpecies = true;
foreach (Pet pet2 in _pets)
{
if (pet2 != pet && pet.Species == pet2.Species)
{
wantedSpecies = false;
break;
}
}
if (wantedSpecies) yield return pet;
}
}

我的代码的时间复杂度是多少,我所知道的是它小于 O(N^2),如果我从内部 foreach 循环中删除“break”,时间复杂度将为 O(N ^2).如果我错了,请纠正我。

最佳答案

这是我的看法:

var q = list.GroupBy (l => l.Species)
.Where (l => l.ElementAtOrDefault(1) == null)
.Select (l => l.Key)

GroupBy 将在内部使用 HashSet,所以 O(N)
ElementAtOrDefault(1) 只需将枚举器移动一步,因此不会为 O(n)

关于c# - 将 ICollection 成员与其自身进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887752/

28 4 0