src/DotNetCommon.Core/Extensions/IntExtensions.cs

(开头部分) 12KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Text;

namespace DotNetCommon.Extensions
{
    using System.Collections.Generic;
    using System.Diagnostics;

    /// <summary>
    /// <see cref="long"/> 扩展类
    /// </summary>
    public static class Int64Extensions
    {
        /// <summary>
        /// 将纪元以来的毫秒转换为 <see cref="DateTime"/>
        /// </summary>
        /// <param name="epochMilliseconds">纪元以来的毫秒为 <see cref="long"/></param>
        /// <returns><see cref="DateTime"/></returns>
        public static DateTime FromEpochMilliseconds(this long epochMilliseconds) => DateTimeExtensions.Epoch.AddMilliseconds(epochMilliseconds);

        /// <summary>
        /// 返回一个 <see cref="IEnumerable{T}"/> ,其中包含 <paramref name="times"/> 项。
        /// </summary>
        /// <param name="times">结果中要包含的项目数</param>
        public static IEnumerable<long> Times(this long times)
        {
            for (long i = 1; i <= times; ++i) { yield return i; }
        }

        /// <summary>
        /// 执行给定的 <paramref name="actionFn"/> <paramref name="times"/> 次。
        /// </summary>
        /// <param name="times"><paramref name="actionFn"/> 应该执行的次数</param>
        /// <param name="actionFn">要执行的动作</param>
        public static void Times(this long times, Action<long> actionFn)
        {
            for (long index = 1; index <= times; ++index) { actionFn(index); }
        }

        /// <summary>
        /// 执行给定的 <paramref name="actionFn"/> <paramref name="times"/> 次。
        /// </summary>
        /// <param name="times"><paramref name="actionFn"/> 应该执行的次数</param>
        /// <param name="actionFn">要执行的动作</param>
        public static void Times(this long times, Action actionFn)
        {
            for (long index = 1; index <= times; ++index) { actionFn(); }
        }

        /// <summary>
        /// 执行给定的 <paramref name="actionFn"/> <paramref name="times"/> 次,并返回每次执行的结果。
        /// </summary>
        /// <param name="times">应该执行的次数</param>
        /// <param name="actionFn">要执行的动作</param>
        public static IReadOnlyList<T> Times<T>(this long times, Func<T> actionFn)
        {
            var list = new List<T>();
            for (long index = 1; index <= times; ++index) { list.Add(actionFn()); }
            return list;
后面还有 238 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。