QSMP.Logic/ExtendMethods.cs

(开头部分) 3KB

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Linq.Expressions;


namespace QSMP.Logic
{
    public static class ExtendMethods
    {

        /// <summary>
        /// 验证是否为空或空值(demo)
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="source">返回实例</param>
        /// <param name="value">验证字符串</param>
        /// <param name="action">验证失败后执行该委托</param>
        /// <returns></returns>
        public static T IsNullOrEmpty<T>(this T source, string value, Action action) where T : class
        {
            if (source == null) return null;
            if (!string.IsNullOrEmpty(value)) return source;
            action();
            return null;
        }

        public static T FirstOrNew<T>(this IEnumerable<T> source) where T : class, new()
        {
            return source.Any() ? source.First() : new T();
        }

        public static List<T> ToListOrEmpty<T>(this IEnumerable<T> source) where T : class
        {
            return source.Any() ? source.ToList() : new List<T>();
        }

        public static void Sort<T>(this List<T> source, Func<T, IComparable> sortFun, bool nullBottom = false) where T : class
        {
            if (nullBottom)
            {
                source.Sort(
                        (a, b) =>
                        {
                            var sa = sortFun(a);
                            var sb = sortFun(b);
                            if (sa == null & sb == null) return 0;
                            if (sa == null) return 1;
                            if (sb == null) return -1;
                            return  sa.CompareTo(sb);
                        }
                  );
            }
            else
            {
                source.Sort(
                        (a, b) =>
                            {
后面还有 63 行代码,解锁后查看完整代码

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

AI 解读

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

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