/// <summary> /// 取得名单列表(分页) /// </summary> /// <param name="rosterType">名单类型</param> /// <param name="api">API</param> /// <param name="policy">策略</param> /// <param name="policyKey">策略Key</param> public async Task <(long count, IEnumerable <ListItem> items)> GetRosterListAsync(RosterType rosterType, string api, Policy policy, string policyKey, long skip, long take) { var key = FromatRosterKey(rosterType, api, policy, policyKey); //取得件数 var count = await _db.ZCardAsync(key); if (count == 0) { return(0, new List <ListItem>()); } //取得数据 var data = await _db.ZRangeWithScoresAsync(key, 0, -1); return(count, data.Select(x => new ListItem { Value = x.member, ExpireTicks = x.score })); }