栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

C#基本语法

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#基本语法

文章目录
  • 字符串
    • 字符串的基本操作
      • 字符串大小写转换
      • 字符串的比较
      • Equals
      • 字符串的格式化
      • 字符串的截取
      • 字符串的分割
      • 字符串的合并
      • 字符串的插入
      • 字符串的填充
      • 字符串的删除
      • 字符串的修剪
      • 字符串的复制
      • 字符串的替换
    • StringBuilder类
      • 定义
      • 设置StringBuilder类的容量
      • 追加操作
      • 插入操作
      • 删除操作
      • 替换操作
    • 正则表达式
      • Regex类
      • Match类
  • 集合与泛型
    • 常用集合类型
      • 动态数组
      • 堆栈类
      • 队列类
      • Hashtable类
    • Dictionary类

字符串 字符串的基本操作 字符串大小写转换
string str = "Study hard and get up every day!";
            Console.WriteLine("大写字符串: " + str.ToUpper());
            Console.WriteLine("小写字符串: " + str.ToLower ());
            char mychar = 'a';
            Console.WriteLine("大写字符: " + char.ToUpper(mychar));
            Console.WriteLine("小写字符: " + char.ToUpper(mychar));
字符串的比较
string str1 = "Hello";
            string str2 = "Hi";
            string str3 = "HELLO";
            Console.WriteLine(string.Compare(str1, str2));//如果str1小于str2返回-1,str1大于str2返回1,相等则返回0
            Console.WriteLine(string.Compare(str1, str3, true));//true代表忽略大小写进行比较
            Console.WriteLine(str1.CompareTo(str2));
Equals

判断两个字符串是否相同

string str1 = "Hello";
            string str2 = "HELLO";
            Console.WriteLine(Equals(str1, str2));
            Console.WriteLine(str1.Equals(str2));
字符串的格式化
Console.WriteLine("使用Format方法,将1-10按照三位数输出: ");
            for(int i=1;i<=10;i++)
            {
                string str = string.Format("{0:D3}", i);
                Console.WriteLine(str);
            }
字符串的截取
string str = "0123456789";
            string s1 = str.Substring(3);//从索引为3后一位的字符开始截取
            Console.WriteLine(s1);
            string s2 = str.Substring(2, 5);//从索引2后一位的字符开始截取,截取5位。
            Console.WriteLine(s2);
字符串的分割
 string str = "大家好%,欢迎=学习C#!";
            Console.WriteLine("原来的字符串为: " + str);
            Console.WriteLine("使用Split方法进行分割");
            char[] separator = { '%', '=' };
            string[] changestr = str.Split(separator);//分割字符串
            foreach(string outstr in changestr)
            {
                Console.WriteLine(outstr);
            }
字符串的合并

1.连接运算符“+”

  string str1 = "大家好!";
            string str2 = "欢迎学习C#!";
            string newstr = str1 + str2;
            Console.WriteLine(newstr);
  1. Concat方法
string str1 = "大家好!";
            string str2 = "欢迎学习C#!";
            string arr = string.Concat(str1, str2);
            Console.WriteLine(arr);

3.Join方法

string str1 = "ABC";
            string str2 = "7752";
            string str3 = "#%$%";
            string newstr = string.Join("-", str1, str2, str3);
            Console.WriteLine(newstr);
字符串的插入
string str = "Hello,C";
            string newstr = str.Insert(7, "#");//表示在第七个字符串的位置上插入字符串
            Console.WriteLine(newstr);
字符串的填充
string str1 = "33";
            string str2 = "444";
            string str3 = "5555";
            string newstr1 = str1.PadRight(5, '*');//使用padright是字符串右对齐,使用*填充;
            Console.WriteLine(newstr1);
            string newstr2 = str2.PadLeft(5, '*');
            Console.WriteLine(newstr2);
字符串的删除
string str = "123456789";
            string str1 = str.Remove(4);//从索引处4处开始移除
            string str2 = str.Remove(3, 5);//从索引处3处移除5个字符
            Console.WriteLine(str1);
            Console.WriteLine(str2);
字符串的修剪

Trim方法删除字符串首部和尾部的空格
TrimStart只删除字符串头部的空格
TrimEnd只删除字符串尾部的空格

string str = "       hello world                ";
            Console.WriteLine("原字符串为:"+str);
            string str1 = str.Trim();
            Console.WriteLine("修剪首尾空格为: " + str1);
            string str2 = str.TrimStart();
            Console.WriteLine("修剪首空格为: " + str2);
            string str3 = str.TrimEnd();
            Console.WriteLine("修剪尾处空格为: " + str3);
 string str = "%#$#Hello-World@%";
            Console.WriteLine("修剪其他字符的方法: " + str.Trim('%', '#', '$', '@'));
字符串的复制

1.copy方法
2.copyto方法

string str = "haohaoxuexi tiantianxiangshang";
            string newstr = string.Copy(str);
            Console.WriteLine(newstr);
            char[] newstr2 = new char[20];
            str.CopyTo(11, newstr2, 0, 6);//第一个参数是复制的字符起始位置,第三个参数为目标数组的开始错放位置,第四个参数就是复制的字符个数
            Console.WriteLine(newstr2);
字符串的替换
string str1 = "haohaoxuexi";
            Console.WriteLine("替换前的字符串: " + str1);
            string newstr = str1.Replace('x', 'X');//将小写x换成大写X
            Console.Write(newstr);
StringBuilder类 定义

string Builder类位于命名空间System.Text中,使用时,通过头文件引入该空间。

using System.Text;

声明string Builder类对象需要使用new关键字,并对其进行初始化。
例如:

StringBuilder strbui = new StringBuilder("Hello World");
设置StringBuilder类的容量

设置StringBuilder容量的意义在于,修改stringbuilder字符串时,在其实际字符长度未达到其容量之前,stringbuilder不会重写分配空间。在达到容量时,会在其基础上自动进行设置。stringbuilde默认初始分配16个字符长度。
StringBuilder类与String类的区别在于?
两者在很多操作上是相似的。
但是在操作性能和内存效率方面,StringBuilder好很多,可以避免产生太多临时字符串对象,特别是对于重复修改的情况更是如此。另一方面,String类提供了更多的方法,可以更快实现应用。
1.使用构造函数

StringBuilder strbui = new StringBuilder("Hello World",100);

2.使用Capacity读/写属性

StringBuilder strb = new StringBuilder("Hello");
            strb.Capacity = 100;
追加操作

1.Append方法

StringBuilder strb = new StringBuilder("Hello");
            strb.Append(" world");

2.AppendFormat方法

StringBuilder strb = new StringBuilder("Today is ");
            strb.AppendFormat("{0:yyyy-MM-dd}", System.DateTime.Now);
            Console.WriteLine(strb);
插入操作
StringBuilder strb = new StringBuilder("Hello World!");
            strb.Insert(6, "beautiful");//索引为6处开始插入字符串
            Console.WriteLine(strb);
删除操作
StringBuilder strb = new StringBuilder("Hello World!");
            strb.Remove(5, 7);//从索引处5开始,删除7个字符
            Console.Write(strb);
替换操作
StringBuilder strb = new StringBuilder("Hello World!");
            strb.Replace('!', '%');//将字符!替换为%
            Console.WriteLine(strb);
正则表达式

正则表达式为一种文本模式。

Regex类

在c#中使用正则表达式主要通过Regex类来实现。

string str = "2md13nabcttac";
            Regex regex = new Regex("abc");
            if(regex.IsMatch(str))//判断字符串str中是否有abc
            {
                Console.WriteLine("字符串中含有abc");
            }
Match类
Regex regex = new Regex("abc");
            Match m = regex.Match("123abc456");//在字符串中进行匹配
            if(m.Success)//success用于判断匹配是否成功
            {
                Console.WriteLine("确定字符串匹配的位置: " + m.Index);
            }

@在正则表达式中的作用?
以@开头,这样的优点在于是转义序列不被处理。

集合与泛型 常用集合类型 动态数组

1.元素的添加

ArrayList arr1 = new ArrayList(5);
            Console.WriteLine("查看ArrayList中实际包含的元素个数: {0}", arr1.Count);
            Console.WriteLine("Add方法: ");
            arr1.Add(10);
            arr1.Add('m');
            arr1.Add('A');
            arr1.Add("hello ");
            arr1.Add(3.14);
            Console.WriteLine("使用Add方法添加5个元素后,元素的个数为: {0}", arr1.Count);
            string[] a = { "张三", "李四", "王五" };
            arr1.AddRange(a);
            Console.WriteLine("使用AddRange方法以后,元素个数为: {0}", arr1.Count);
            Console.WriteLine("遍历集合为: ");
            foreach(object i in arr1)
            {
                Console.Write(i + "t");
            }

2.元素的删除

ArrayList arr1 = new ArrayList(5);
            Console.WriteLine("查看ArrayList中实际包含的元素个数: {0}", arr1.Count);
            Console.WriteLine("Add方法: ");
            arr1.Add(10);
            arr1.Add('m');
            arr1.Add('A');
            arr1.Add("hello ");
            arr1.Add(3.14);
            Console.WriteLine("使用Add方法添加5个元素后,元素的个数为: {0}", arr1.Count);
            string[] a = { "张三", "李四", "王五" };
            arr1.AddRange(a);
            Console.WriteLine("使用AddRange方法以后,元素个数为: {0}", arr1.Count);
            Console.WriteLine("遍历集合为: ");
            foreach(object i in arr1)
            {
                Console.Write(i + "t");
            }
            arr1.Remove("张三");
            Console.WriteLine();
            foreach (object i in arr1)
            {
                Console.Write(i + "t");
            }
            arr1.RemoveAt(3);//指定移除索引值
            Console.WriteLine();
            foreach (object i in arr1)
            {
                Console.Write(i + "t");
            }
            arr1.RemoveRange(3, 2);
            Console.WriteLine();
            foreach (object i in arr1)
            {
                Console.Write(i + "t");
            }
            arr1.Clear();
            Console.WriteLine();
            foreach (object i in arr1)
            {
                Console.Write(i + "t");
            }

3.遍历与查找

ArrayList arr1 = new ArrayList(5);
            Console.WriteLine("查看ArrayList中实际包含的元素个数: {0}", arr1.Count);
            Console.WriteLine("Add方法: ");
            arr1.Add(10);
            arr1.Add('m');
            arr1.Add('A');
            arr1.Add("hello ");
            arr1.Add(3.14);
            Console.WriteLine("使用Add方法添加5个元素后,元素的个数为: {0}", arr1.Count);
            string[] a = { "张三", "李四", "王五","李四" };
            arr1.AddRange(a);
            Console.WriteLine("使用AddRange方法以后,元素个数为: {0}", arr1.Count);
            Console.WriteLine("遍历集合为: ");
            foreach(object i in arr1)
            {
                Console.Write(i + "t");
            }
            Console.WriteLine();
            Console.WriteLine(arr1.IndexOf("李四"));
            Console.WriteLine(arr1.LastIndexOf("李四"));
堆栈类

常见方法:
clear
contains
peek
pop
push
ToArray

Stack st = new Stack();
            Console.WriteLine("Push方法");
            Console.WriteLine("向栈顶添加四个对象");
            st.Push('a');
            st.Push('b');
            st.Push('c');
            st.Push('d');
            Console.WriteLine("遍历Stack");
            foreach(char c in st)
            {
                Console.Write(c + " ");
            }
            Console.WriteLine("nPeek方法");
            Console.WriteLine("堆栈顶部的对象为:{0}", st.Peek());
            st.Pop();
            Console.WriteLine("移除堆栈顶部的对象: ");

            foreach(char c in st)
            {
                Console.WriteLine(c + " ");
            }
队列类

方法为:
Enqueue
Dequeue

Queue queue = new Queue();
            queue.Enqueue('a');
            queue.Enqueue('b');
            queue.Enqueue('c');
            queue.Enqueue('d');
            Console.WriteLine("遍历队列: ");
            foreach(char c in queue)
            {
                Console.Write(c + " ");
            }
            Console.WriteLine("再添加两个元素: ");
            queue.Enqueue('e');
            queue.Enqueue('f');
            Console.WriteLine("遍历队列: ");
            foreach (char c in queue)
            {
                Console.Write(c + " ");
            }
            Console.WriteLine("移除开头两个元素: ");
            Console.WriteLine("移除第一个元素: {0}", queue.Dequeue());
            Console.WriteLine("移除第二个元素: {0}", queue.Dequeue());
            Console.WriteLine("遍历队列: ");
            foreach (char c in queue)
            {
                Console.Write(c + " ");
            }
Hashtable类
Hashtable ht = new Hashtable();
            Console.WriteLine("元素添加: ");
            ht.Add(1, "星期一");
            ht.Add(2, "星期二");
            ht.Add(3, "星期三");
            ICollection key = ht.Keys;//获取键值
            foreach(object k in key)
            {
                Console.WriteLine(k + ": " + ht[k]);
            }
            Console.WriteLine("元素添加方法二: ");
            ht[4] = "星期四";
            ht[1] = "星期五";
            foreach (object k in key)
            {
                Console.WriteLine(k + ": " + ht[k]);
            }
            Console.WriteLine("哈希表包含的键值对个数: {0}", ht.Count);

遍历:

Hashtable ht = new Hashtable();
            Console.WriteLine("元素添加: ");
            ht.Add(1, "星期一");
            ht.Add(2, "星期二");
            ht.Add(3, "星期三");
            ht[4] = "星期四";
            Console.WriteLine("遍历方法一: ");
            foreach(DictionaryEntry obj in ht)
            {
                Console.WriteLine("键为{0},值为{1}", obj.Key, obj.Value);
            }
            Console.WriteLine("遍历方法二: ");
            foreach(object obj in ht.Keys)
            {
                Console.WriteLine("键为{0},值为{1}", obj, ht[obj]);
            }

删除:

Hashtable ht = new Hashtable();
            Console.WriteLine("元素添加: ");
            ht.Add(1, "星期一");
            ht.Add(2, "星期二");
            ht.Add(3, "星期三");
            ht[4] = "星期四";
            Console.WriteLine("遍历方法一: ");
            foreach(DictionaryEntry obj in ht)
            {
                Console.WriteLine("键为{0},值为{1}", obj.Key, obj.Value);
            }
            Console.WriteLine("Remove方法: ");
            ht.Remove(4);
            foreach (DictionaryEntry obj in ht)
            {
                Console.WriteLine("键为{0},值为{1}", obj.Key, obj.Value);
            }
            Console.WriteLine("clear方法: ");
            ht.Clear();
            foreach (DictionaryEntry obj in ht)
            {
                Console.WriteLine("键为{0},值为{1}", obj.Key, obj.Value);
            }

查找:
containkey
containvalue

Hashtable ht = new Hashtable();
            Console.WriteLine("元素添加: ");
            ht.Add(1, "星期一");
            ht.Add(2, "星期二");
            ht.Add(3, "星期三");
            ht[4] = "星期四";
            Console.WriteLine("遍历方法一: ");
            foreach(DictionaryEntry obj in ht)
            {
                Console.WriteLine("键为{0},值为{1}", obj.Key, obj.Value);
            }
            Console.WriteLine("判断Hsahtable是否包括的键3");
            if(ht.ContainsKey(3))
            {
                Console.WriteLine("存在该键");
            }
            if (ht.ContainsValue("星期一")) Console.WriteLine("存在该值");
            else Console.WriteLine("不存在该值");
Dictionary类

c#中,Dictionary提供快速的基于键值的元素查找。

Dictionary dc = new Dictionary();
            dc.Add(1, "C#");
            dc.Add(2, "C++");
            dc.Add(3, "ASP.NET");
            dc.Add(4, "MVC");
            Console.WriteLine("KeyValuePair遍历元素: ");
            foreach(KeyValuePairkvp in dc)
            {
                Console.WriteLine("key={0}; value={1}", kvp.Key, kvp.Value);
            }
            Console.WriteLine("通过Key查找元素: ");
            if(dc.ContainsKey(1))
            {
                Console.WriteLine("Key={0},Value;{1}", "1", dc[1]);
            }
            Console.WriteLine("仅遍历键Keys属性: ");
            Dictionary.KeyCollection keycol = dc.Keys;
            foreach(int key in keycol)
            {
                Console.WriteLine("Key={0}", key);
            }
            Console.WriteLine("仅遍历Values属性: ");
            Dictionary.ValueCollection valuecol = dc.Values;
            foreach(string value in valuecol)
            {
                Console.WriteLine("Value = {0}", value);
            }
            Console.WriteLine("Remove方法移除元素");
            dc.Remove(1);
            if(dc.ContainsKey(1))
            {
                Console.WriteLine("Key: {0},Value: {1}", "1", dc[1]);
            }
            else
            {
                Console.WriteLine("不存在Key :1");
            }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/910081.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号