using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Kean.Infrastructure.NoSql.Redis { /// /// 集合类型 /// public sealed class Set : IValue { /// /// 初始化 Kean.Infrastructure.NoSql.Redis.Set 类的新实例 /// internal Set() { } /// /// 遍历处理 /// internal event Func>> OnRange; /// /// 添加处理 /// internal event Func OnAdd; /// /// 移除处理 /// internal event Func OnRemove; /// /// 获取集合 /// /// 键 /// 集合 public Value this[string key] { get { var value = new Value(key); value.OnRange += OnRange; value.OnAdd += OnAdd; value.OnRemove += OnRemove; return value; } } /// /// 集合值 /// public sealed class Value { private readonly string _key; /// /// 初始化 Kean.Infrastructure.NoSql.Redis.Set.Value 类的新实例 /// /// internal Value(string key) => _key = key; /// /// 遍历处理 /// internal event Func>> OnRange; /// /// 添加处理 /// internal event Func OnAdd; /// /// 移除处理 /// internal event Func OnRemove; /// /// 遍历 /// /// public Task> Range() => OnRange(_key); /// /// 添加项 /// /// 值 public Task Add(string value) => OnAdd(_key, value); /// /// 移除项 /// /// 值 public Task Remove(string value) => OnRemove(_key, value); } } }