C#总结:常用基础语法总结

一、字符串

①长度、索引、切片、包含

string s = "我是一个字符串";

Console.WriteLine(s.Length);//输出长度7

Console.WriteLine(s.IndexOf("是"));//输出索引1

Console.WriteLine(s.Replace("是", "不是"));//后代前,输出“我不是一个字符串”

Console.WriteLine(s.Substring(4, 3));//切片输出“字符串”(第4开始长度为3)

Console.WriteLine(s.Substring(2));//切片输出“一个字符串”(第2开始到结束)

bool b= s.Contains("一个");//字符串s,是否含有 “一个”

bool b2=s.StartsWith("一个") ;// 字符串s,是否以 “一个”开头

bool b3=s.EndsWith("一个") ;// 字符串s,是否以 “一个”结尾

【字符串使用Contains需注意】

 是mainString.Contains(subString),例子如下所示:

Console.WriteLine("P业务经理".Contains("P领域主管,P项目成员,P业务经理"));//返回False
Console.WriteLine("P领域主管,P项目成员,P业务经理".Contains("P业务经理"));//返回True

②拼接(★)

string s = "123";

string s2 = "456";

string s3 = $"{s}拼接{s2}";//$类似于Python的format

Console.WriteLine(s3);//输出 123拼接456

③删除、替换操作

string s = "abcd";

string result = s.Replace("c", "");//删除内容为c的字符,存于result

string result = s.Remove(2, 1); //删除索引从2开始,长度为1的字符,存于result

④判断是不是字母

string s = "abcd";

char.IsLetter(s[1])

⑤劈分和前后消除

    string s = "Hello,World,How,Are,You";

    string[] words = s.Split(',');

    Console.Write(words[1]);//输出World

    string s = "aacsdna";

    string news = s.Trim('a');

    Console.Write(news);//输出csdn

二、数组和值类型

①数组

int[] nums = { 0, 1, 2, 2, 3, 0, 4, 2 };//题目数组

var list = new List<int>(nums); //静态数组→泛型列表

②值类型创建

float f = 3.14f;//浮点型赋值,加f

double d = 6.66;//双精度浮点数

string s = "123";

③强制转换

float f2 = (float)d;//数字转数字

int i = int.Parse(s);//字符转数字

string s2 = f.ToString();//数字转字符 其他ToArray等也是同理

byte[] s3 = Convert.ToByte(s2);//string转byte

④泛型列表【必须掌握】

泛型列表链接

⑤哈希表(字典)【必须掌握】

字典链接

⑥哈希集合【必须掌握】

//1.列表去重

List<int> intlist = new List<int> { 1, 1, 2, 3, 4 };

HashSet<int> setlist = intlist.ToHashSet();//存放内容为1,2,3,4

//2.递归时加入重复值,起到过滤作用

HashSet<int> setlist2 = new HashSet<int> { 1, 2, 3, 4 };

setlist2.Add(1);//存放内容为1,2,3,4

⑦元组:快速交换

   int a = 1;

   int b = 100;

   (a, b) = (b, a);//交换

   Console.WriteLine(a);//100

   Console.WriteLine(b);//1

三、布尔类型

bool b = true;//定义一个布尔类型

Console.WriteLine(true && false);//和运算,输出false

Console.WriteLine(true || false);//或运算,输出true

Console.WriteLine(!true);//非运算,输出false

四、switch语句

【旧语法】

int i = int.Parse(Console.ReadLine());//获取控制台输入存入i

switch(i)

{

    case 1 :Console.WriteLine("i的值是1");

        //其他要执行的语句

        break; //不要漏写break

    case 2 :Console.WriteLine("i的值是2");

        //其他要执行的语句

        break;

    default:Console.WriteLine("i的值是其他");

        //其他要执行的语句

        break;

}

【新语法】

class MainClass

{

    public static string Method(int a)

    {

        string result = true switch

        {

            _ when a == 1 => "入参是1",

            _ when a == 2 => "入参是2",

            _ when a == 3 => "入参是3",

            _ => "入参是其他"

        };

        return result;

    }

    static void Main(string[] args)

    {

        var result = Method(5);

        Console.WriteLine(result);

    }

}

五、enum枚举

    public enum AssistType

    {

        Symbol = 0,

        Formula = 1,

        Chart = 2,

    }

    static void Main(string[] args)

    {

        string name = Enum.GetNames(typeof(AssistType))[2];//索引2 => 枚举名

        string name2 = AssistType.Formula.ToString();//枚举名=>枚举名(enum=>string)

        int index = AssistType.Formula.GetHashCode();//枚举名 => 索引

        Console.WriteLine(name);

        Console.WriteLine(name2);

        Console.WriteLine(index);

            /*        输出结果:

                            Chart

                            Formula

                            1         */

    }

六、问号用法(三元/可空)

    static void Main(string[] args)

    {

        //1.有关空

        string text = null;//text不为空才点出Length,如果为空则输出123

        Console.WriteLine(text?.Length.ToString() ?? "123");

        //2.三元运算符

        string result = (text == "1") ? "text等于1" : "text不等于1";

        Console.WriteLine(result);

    }

九、文件读写

//文件写

string filePath = @"D:\C_program\test\testresult\testresult.txt";//@代表对后面斜杠转义

string message = "helloworld";

using (StreamWriter writer = new StreamWriter(filePath, true)) //true代表追加内容,false代表覆盖内容

{

    writer.WriteLine(message);

}

//文件读

string filePath = @"D:\C_program\test\testresult\testresult.txt";

using (StreamReader streamReader = new StreamReader(filePath))

{

    string text = streamReader.ReadToEnd();

    Console.WriteLine(text);

}

十、一个方法多个返回值

一个方法多个返回值

十一、多线程

class Program

{

    static bool flag = true;

    static void Main()

    {

        Thread thread = new Thread(() => PrintMessage());//将方法PrintMessage放进线程中(将方法作为参数代入,本质是委托)

        thread.Start();//线程开始

    }

    static void PrintMessage()

    {

        while (flag)//只要flag标志为真,就一直执行这个方法

        {

            ;//具体代码逻辑

            Thread.Sleep(5000);//延迟5s执行

        }

    }

}

十一、判断入参类型

public object GetTypeCode(object obj)

{

    if (obj is float)//如果传参是浮点型

    {

        return "abc";//返回字符串abc

    }

    else if (obj is double)//如果传参是双精度浮点型

    {

        return 2;//返回整型2

    }

    else

    {

        // 如果传入的类型不是floatdouble,则返回null或其他你认为合适的值

        return null;

    }

}

十二、拓展方法

【注意】不要和原有方法重名,否则优先执行原有方法!

public static class ExpandMethod//扩展方法类名是任意起的,public static固定不变

{

    public static bool EqualsAAA(this String data)//方法名是任意起的,public static固定不变,第一个参数是:this+被扩展类型+内容参数

    {   //若有入参(this String data,int a,sting b)

        if (data.Equals("AAA"))

        {

            return true;

        }

        return false;

    }

}

class MainClass//新建一个类,在这个类中可调用写好的扩展类下的扩展方法

{

    static void Main(string[] args)

    {

        Console.WriteLine("a".EqualsAAA());//调用扩展方法,返回False

        Console.WriteLine("as".EqualsAAA());//返回False

        Console.WriteLine("AAA".EqualsAAA());//返回True

    }

}

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值