gpt4 book ai didi

c# - 检查列表是否包含两个不同派生类型的元素

转载 作者:太空宇宙 更新时间:2023-11-03 21:59:30 26 4
gpt4 key购买 nike

我想检查一个元素列表,看看它是否包含至少两个特定派生类型的元素。目前我的实现是这样的:

    public override bool IsEnabledForTechnology(List<TechnologyBase> enabledTechnologies)
{
return enabledTechnologies.Any(t => t.GetType() == typeof(TechnologyA)) && enabledTechnologies.Any(t => t.GetType() == typeof(TechnologyB));
}

实现此目标最有效的语句是什么?

最佳答案

使用 OfType 按类型过滤列表:

public override bool IsEnabledForTechnology(List<TechnologyBase> enabledTechnologies)
{
return enabledTechnologies.OfType<TechnologyA>.Any() &&
enabledTechnologies.OfType<TechnologyB>.Any();
}

关于c# - 检查列表是否包含两个不同派生类型的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10804188/

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