F/Date/FHashSet.cs
(开头部分) 4KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace System
{
#if !NET4
/// <summary>哈希集合。内部采用泛型字典实现,如若在.Net 4.0环境,可直接使用.Net 4.0的HashSet。</summary>
/// <typeparam name="T"></typeparam>
public class FHashSet<T> : ICollection<T>
{
#region 初始化
Dictionary<T, T> _dic;
/// <summary>实例化一个哈希集合</summary>
public FHashSet() : this(null, null) { }
/// <summary>指定比较接口实例化一个哈希集合</summary>
/// <param name="comparer"></param>
public FHashSet(IEqualityComparer<T> comparer) : this(null, comparer) { }
/// <summary>指定来源数据实例化一个哈希集合</summary>
/// <param name="data"></param>
public FHashSet(IEnumerable data) : this(data, null) { }
/// <summary>指定来源数据和比较接口实例化一个哈希集合</summary>
/// <param name="data"></param>
/// <param name="comparer"></param>
public FHashSet(IEnumerable data, IEqualityComparer<T> comparer)
{
if (comparer == null)
_dic = new Dictionary<T, T>();
else
_dic = new Dictionary<T, T>(comparer);
if (data != null)
{
foreach (T item in data)
{
//_dic.Add(item, item);
_dic[item] = item;
}
}
}
#endregion
#region ICollection<T> 成员
/// <summary>将指定的键和值添加到集合中。</summary>
/// <param name="item"></param>
public void Add(T item)
{
if (IsReadOnly) throw new Exception("不能改变只读集合!");
_dic.Add(item, item);
}
/// <summary>从集合中移除所有的键和值。</summary>
public void Clear()
后面还有 68 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
