1.StringBuilder拼接字符串的工具
StringBuilder sb = new StringBuilder()
sb.Append("1233456");
sb.Append("添加");
webBrowser1.DocumentText = sb.ToString();
2.out参数
out参数侧重于在函数中返回多个值
out 参数要求必须在方法的内部为其赋值
int n;
string s;
bool b = Test(out n, out s);
Console.WriteLine(b);
Console.WriteLine(n);
Console.WriteLine(s);
static bool Test2(out int n,out string s)
{
n=100;
s="123";
return ture;
}
3、集合的学习
非泛型集合(类型不确定)
ArrayList
Hashtable
泛型集合(类型确定)
List<T>
Dictionary<Tkey,Tvalue>
(1)非泛型集合
好处:不用考虑数组类型
坏处:会进行装箱和拆箱,影响效率
(2)装箱和拆箱
装箱:值类型---->引用类型
拆箱:引用类型—>值类型
我们判断是否发生了拆箱或者装箱,首先要判断这两种数据类型是否存在继承关系。
你装箱的时候拿什么类型装的箱,你拆的时候,就得拿什么类型去拆。
4.集合和数组
集合可以随时改变长度
5.List常用的函数
Add():添加单个元素
AddRange():添加一个集合
Insert():插入一个元素
InsertRange():插入一个集合
Remove():移除指定的元素
RemoveAt():根据下标移除元素
RemoveRange():移除一定范围内的元素
ToArray():集合转换成数组
ToList():数组转换成集合
//集合初始化器
List<string> list1 = new List<string>() { "a", "b", "c", "d", "e" };
List<string> list2 = new List<string>() { "d", "e", "f", "g", "h" };
//让list1添加list2中的每个元素
for (int i = 0; i < list2.Count; i++)
{
if (!list1.Contains(list2[i]))
{
list1.Add(list2[i]);
}
}
foreach (string item in list1)
{
Console.WriteLine(item);
}
6.Dictionary键值对集合
Dictionary<string , string> dic = new Dictionary<string, string>();
dic.Add("1", "张三");
dic.Add("2", "李四");
dic.Add("3", "王五");
dic.Add("4", "赵六");
//键值对集合中的键必须是唯一的
//dic.Add(4, "田七");
//键值对集合中的值是可以重复的
dic.Add("5", "王五");
//可以给键值对集合中的某一个值进行重新赋值
dic["4"] = "田七";
键值对集合常用函数
判断集合中是否已经包含某一个键
if (!dic.ContainsKey(13))
{
dic.Add(13, "玩狗蛋儿");
}
else
{
dic[3] = "王狗蛋儿";
}
Console.WriteLine(dic[13]);
两种遍历方式(不要用for)
使用foreach循环,通过遍历键值对的形式对键值对集合进行遍历
第一种遍历方式:遍历集合中的键
foreach (string item in dic.Keys)
{
Console.WriteLine("键---{0} 值---{1}",item,dic[item]);
Console.ReadKey();
}
第二种遍历方式:遍历集合中的键值对
foreach (KeyValuePair<string, string> kv in dic)
{
Console.WriteLine("键---{0} 值---{1}", kv.Key, kv.Value);
}
Console.ReadKey();
}
6文件操作
(1)File类(静态类)
Exist():判断指定的文件是否存在
Create():创建
Move():剪切
Copy():复制
Delete():删除
using System.IO;
if (!File.Exists("1.txt"))
{
File.Create("1.txt");
}
if (File.Exists("1.txt"))
{
File.Delete("1.txt");
}
File.Copy(@"C:\Users\SpringRain\Desktop\english.txt", @"D:\aaaaaa.txt");
Console.WriteLine("操作成功");
File.Move(@"D:\aaaaaa.txt", @"C:\Users\SpringRain\Desktop\bbbbbb.txt");
(2)读操作
// ReadAllLines()默认采用的编码格式是utf-8
string[] str = File.ReadAllLines(@"C:\Users\SpringRain\Desktop\english.txt");
// ReadAllText()默认采用的编码格式也是utf-8
string str = File.ReadAllText(@"C:\Users\SpringRain\Desktop\english.txt");
Console.WriteLine(str);
byte[] buffer = File.ReadAllBytes(@"C:\Users\SpringRain\Desktop\english.txt");
//字节数组---->字符串
string str = Encoding.UTF8.GetString(buffer);
Console.WriteLine(str);
(3)写操作
string str="张三李四王五百家姓";
//字符串--->字节数组
byte[] buffer= Encoding.Default.GetBytes(str);
File.WriteAllBytes(@"C:\Users\SpringRain\Desktop\121212.txt", buffer);
File.WriteAllLines(@"C:\Users\SpringRain\Desktop\121212.txt", new string[] { "a", "b" });
File.WriteAllText(@"C:\Users\SpringRain\Desktop\121212.txt", "c");
7.MD5加密
using System.Security.Cryptography;
static void Main(string[] args)
{
string str = "123";
string md5Str = GetMd5(str);
Console.WriteLine(md5Str);
Console.ReadKey();
}
static string GetMd5(string str)
{
MD5 md5 = MD5.Create();
byte[] buffer = Encoding.Default.GetBytes(str);
//开始加密 返回加密好的字节数组
byte[] bufferMd5 = md5.ComputeHash(buffer);
//转成字符串
//string result = Encoding.Default.GetString(bufferMd5);
//return result;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < bufferMd5.Length; i++)
{
sb.Append(bufferMd5[i].ToString("x2"));//x:表示将十进制转换为16进制
}
return sb.ToString();
}