gpt4 book ai didi

c# - ICollection 和 IReadOnlyCollection 的扩展方法

转载 作者:行者123 更新时间:2023-11-30 16:16:15 26 4
gpt4 key购买 nike

我想为 ICollection 和 IReadonlyCollection 接口(interface)编写扩展方法(例如 .IsEmpty()):

public static bool IsEmpty<T>(this IReadOnlyCollection<T> collection)
{
return collection == null || collection.Count == 0;
}

public static bool IsEmpty<T>(this ICollection<T> collection)
{
return collection == null || collection.Count == 0;
}

但是当我将它与实现两个接口(interface)的类一起使用时,我显然得到了“模糊调用”。我不想输入 myList.IsEmpty<IReadOnlyCollection<myType>>() , 我希望它只是 myList.IsEmpty() .

这可能吗?

最佳答案

鉴于他们都继承自IEnumerable<T>您可以通过对其进行扩展来避免歧义问题:

public static class IEnumerableExtensions
{
public static bool IsEmpty<T>(this IEnumerable<T> enumerable)
{
return enumerable == null || !enumerable.Any();
}
}

关于c# - ICollection 和 IReadOnlyCollection 的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18627958/

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