Skip to main content
 首页 » 编程设计

c#之在构造函数中使用 IEqualityComparer 的通用集合

2024年01月11日28qlqwjy

框架中有这样的集合吗?

public class DesiredCollection<T> 
{ 
    public DesiredCollection(IEqualityComparer<T> comparer)  
    { 
    } 
} 

要求:

  • 通用集合;
  • IEqualityComparer 或 lambda 表达式来确定相等性;
  • 无需定义 key 类型;
  • 通过键获取项目;
  • 将所有项目作为 IEnumerable。

请您参考如下方法:

各种收藏取IEqualityComparer<T>在他们的构造函数中(通常是几个重载中的一个)。特别是, Dictionary<TKey, TValue> 和 HashSet<T> 属于这一类。他们使用相等比较器来检查键/元素是否存在。

但是,除了需要构造函数采用相等比较器之外,您还没有真正表达任何其他内容。大概你需要的不止这些……你想做什么?