diff --git a/Api/Utility/ConcurrentQueue.cs b/Api/Utility/ConcurrentFIFOQueue.cs similarity index 87% rename from Api/Utility/ConcurrentQueue.cs rename to Api/Utility/ConcurrentFIFOQueue.cs index 003222e..1afd7e1 100644 --- a/Api/Utility/ConcurrentQueue.cs +++ b/Api/Utility/ConcurrentFIFOQueue.cs @@ -2,7 +2,7 @@ namespace Milimoe.FunGame.Core.Api.Utility { - public class ConcurrentQueue : IEnumerable + public class ConcurrentFIFOQueue : IEnumerable { private System.Collections.Concurrent.ConcurrentQueue Instance { get; } = []; @@ -17,7 +17,7 @@ namespace Milimoe.FunGame.Core.Api.Utility Instance.Enqueue(obj); } - public bool GetFirst(out T? obj) + public bool Dequeue(out T? obj) { return Instance.TryDequeue(out obj); } diff --git a/Api/Utility/LINQExtension.cs b/Api/Utility/LINQExtension.cs index 1185ef8..299850b 100644 --- a/Api/Utility/LINQExtension.cs +++ b/Api/Utility/LINQExtension.cs @@ -2,16 +2,32 @@ { public static class LINQExtension { - public static IEnumerable GetPage(this IEnumerable list, int showPage, int pageSize) + /// + /// 分页查询:返回指定页码的数据 + /// + /// 集合元素的类型 + /// 要分页的源集合 + /// 页码 + /// 每页显示的元素数量 + /// 当前页的数据 + public static IEnumerable GetPage(this IEnumerable source, int page, int pageSize) { - return [.. list.Skip((showPage - 1) * pageSize).Take(pageSize)]; + return source.Skip((page - 1) * pageSize).Take(pageSize); } - public static int MaxPage(this IEnumerable list, int pageSize) + /// + /// 计算总页数 + /// + /// 集合元素的类型 + /// 源集合 + /// 每页显示的元素数量(必须大于 0) + /// 总页数(至少为 1) + public static int MaxPage(this IEnumerable source, int pageSize) { if (pageSize <= 0) pageSize = 1; - int page = (int)Math.Ceiling((double)list.Count() / pageSize); - return page > 0 ? page : 1; + int count = source.Count(); + if (count == 0) return 1; + return (int)Math.Ceiling((double)count / pageSize); } } }