src/DotNetCommon.Core/Extensions/StringExtensions.cs

(开头部分) 23KB

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

using DotNetCommon;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection;
using System.Text;
using System.Text.Json;
using System.Text.Json.Nodes;
using System.Text.RegularExpressions;
using System.Threading;
using System.Xml;
using System.Xml.Linq;

namespace DotNetCommon.Extensions
{
    /// <summary>
    /// <see cref="string"/> 的扩展类。
    /// </summary>
    public static class StringExtensions
    {
        /*
         * window下 Path.GetInvalidFileNameChars() 返回41个无效字符,Path.GetInvalidPathChars() 返回36个无效字符
         * linux下  Path.GetInvalidFileNameChars() 返回2个无效字符,Path.GetInvalidPathChars() 返回1个无效字符
         * 所以,为了文件和路径命名更加安全,统一文件命名采用window下的41个无效字符、路径命名采用window下的36个无效字符!
         */

        private static readonly char[] InvalidFileNameCharacters = new char[41] { '"', '<', '>', '|', '\0', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\a', '\b', '\t', '\n', '\v', '\f', '\r', '\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f', ':', '*', '?', '\\', '/' };
        private static readonly char[] InvalidPathCharacters = new char[36] { '"', '<', '>', '|', '\0', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', '\u0006', '\a', '\b', '\t', '\n', '\v', '\f', '\r', '\u000e', '\u000f', '\u0010', '\u0011', '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', '\u0018', '\u0019', '\u001a', '\u001b', '\u001c', '\u001d', '\u001e', '\u001f' };

        /// <summary>
        /// string.Format 的简化方法
        /// <example>
        /// <para>示例:</para>
        /// <code>
        /// "{0} is {1}".Format("He","Tom");
        /// //Output: "He is Tom"
        /// </code>
        /// </example>
        /// </summary>        
        /// <param name="value"></param>
        /// <param name="paras"><seealso cref="String.Format(string, object[])"/>的格式化参数</param>
        /// <returns></returns>
        public static string Format(this string value, params string[] paras)
        {
            if (value is null) return value;
            return string.Format(value, paras);
        }

        /// <summary>
        /// string.IsNullOrEmpty 的简化方法
        /// </summary>
        public static bool IsNullOrEmpty(this string value) => string.IsNullOrEmpty(value);

        /// <summary>
        /// string.IsNullOrEmpty 的简化方法(逆向)
后面还有 484 行代码,解锁后查看完整代码

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

AI 解读

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

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