咩狼博客 · 11月 23, 2022

C# 实用小方法

最近在学习C#的使用,随手写了几个小方法方便在写的时候不用每次开套件就整个新的。
Class: Output

using System;

namespace Utils
{
    public class Output
    {
        /**
         * 输出文字,输入任意内容都会被转换为字符串。
         * 
         */
        public static void println(object message)
        {
            Console.WriteLine(message.ToString());
        }

        /**
         * 输出日志,仅接受字符串。
         */
        public static void Log(string message)
        {
            Console.WriteLine("[{0} {1}]: {2}", getTime(), "Info", message);
        }

        public static void Log(GetLevel level, string message)
        {
            Console.WriteLine("[{0} {1}]: {2}", getTime(), level.ToString(), message);
        }

        public static void Log(string level, string message)
        {
            Console.WriteLine("[{0} {1}]: {2}", getTime(), level, message);
        }

        // Tool data.
        private static string getTime()
        {
            return DateTime.Now.ToString();
        }

        public enum GetLevel
        {
            Debug,
            Info,
            Warn,
            Error
        }
    }
}

Class: Util

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

namespace Utils
{
    class Util
    {
        /**
         * 使用值从列表中取出键。
         */
        public static object GetKeyByValue<T>(Dictionary<T, T> dict, T value)
        {
            foreach (var i in dict)
            {
                if (i.Value.ToString() == value.ToString())
                {
                    return i.Key;
                }
            }
            return null;
        }

        /**
         * 将字符串转为小写
         * 
         * @Return 小写字符串(“teststring”)
         */
        public static string ToUp(string str)
        {
            return str.ToUpper();
        }

        /**
         * 将字符串转为大写
         * 
         * @Return 大写字符串(“TESTSTRING”)
         */
        public static string ToDown(string str)
        {
            return str.ToLower();
        }

        /**
         * 将字符串转为蛇形
         * 
         * @Return 蛇形字符串(“test_string”)
         */
        public static string ToSnack(string str)
        {
            StringBuilder builder = new StringBuilder();
            string getStr = str;
            bool previousUpper = false;

            for (var i = 0; i < getStr.Length; i++)
            {
                var c = getStr[i];
                if (char.IsUpper(c))
                {
                    if (i > 0 && !previousUpper)
                    {
                        builder.Append("_");
                    }

                    builder.Append(char.ToLowerInvariant(c));
                    previousUpper = true;
                }
                else
                {
                    builder.Append(c);
                    previousUpper = false;
                }
            }

            return builder.ToString();
        }
    }
}