diff --git a/C#进阶/C#进阶.sln b/C#进阶/C#进阶.sln index 4530a4d..740d55f 100644 --- a/C#进阶/C#进阶.sln +++ b/C#进阶/C#进阶.sln @@ -13,6 +13,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson2_Stack", "Lesson2_St EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson2_Stack练习题", "Lesson2_Stack练习题\Lesson2_Stack练习题.csproj", "{BE917425-E4A8-4C51-89BE-8F6DD86A1C00}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson3_Queue", "Lesson3_Queue\Lesson3_Queue.csproj", "{E16850A5-9B2E-473D-B9FB-0694439290B9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lesson3_Queue练习题", "Lesson3_Queue练习题\Lesson3_Queue练习题.csproj", "{77AE0EA5-FD54-46A0-A708-A2B38ABEE26D}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -39,6 +43,14 @@ Global {BE917425-E4A8-4C51-89BE-8F6DD86A1C00}.Debug|Any CPU.Build.0 = Debug|Any CPU {BE917425-E4A8-4C51-89BE-8F6DD86A1C00}.Release|Any CPU.ActiveCfg = Release|Any CPU {BE917425-E4A8-4C51-89BE-8F6DD86A1C00}.Release|Any CPU.Build.0 = Release|Any CPU + {E16850A5-9B2E-473D-B9FB-0694439290B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E16850A5-9B2E-473D-B9FB-0694439290B9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E16850A5-9B2E-473D-B9FB-0694439290B9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E16850A5-9B2E-473D-B9FB-0694439290B9}.Release|Any CPU.Build.0 = Release|Any CPU + {77AE0EA5-FD54-46A0-A708-A2B38ABEE26D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77AE0EA5-FD54-46A0-A708-A2B38ABEE26D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77AE0EA5-FD54-46A0-A708-A2B38ABEE26D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77AE0EA5-FD54-46A0-A708-A2B38ABEE26D}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/C#进阶/Lesson3_Queue/Lesson3_Queue.csproj b/C#进阶/Lesson3_Queue/Lesson3_Queue.csproj new file mode 100644 index 0000000..2150e37 --- /dev/null +++ b/C#进阶/Lesson3_Queue/Lesson3_Queue.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/C#进阶/Lesson3_Queue/Program.cs b/C#进阶/Lesson3_Queue/Program.cs new file mode 100644 index 0000000..c0abd48 --- /dev/null +++ b/C#进阶/Lesson3_Queue/Program.cs @@ -0,0 +1,89 @@ +using System.Collections; + +namespace Lesson3_Queue +{ + class Test + { + + } + internal class Program + { + static void Main(string[] args) + { + #region 知识点一 队列本质 + //queue是C#为我们封装好的类 + //本质是一个Object数组,只是封装了特殊的存储规则 + + //queue是队列存储容器,队列是一种先进先出的数据结构 + //先存入的数据先取出,后存入的数据后取出 + #endregion + + #region 知识点二 声明 + //需要引用命名空间system.collections + Queue queue = new Queue(); + #endregion + + #region 知识点三 增取查改 + + //增 + queue.Enqueue(1);//入队 + queue.Enqueue("123"); + queue.Enqueue(1.4f); + queue.Enqueue(new Test()); + + //取 + object v = queue.Dequeue();//出队,取出队列头部的元素 + Console.WriteLine(v); + v = queue.Dequeue(); + Console.WriteLine(v); + + //查 + //1.查看队列头部的元素 + v = queue.Peek(); + Console.WriteLine(v); + v = queue.Peek(); + Console.WriteLine(v); + //2.查看元素是否存在于队列中 + if(queue.Contains(1.4f)) + { + Console.WriteLine("存在1.4f"); + } + + //改 + //队列没有提供修改元素的方法 + //只能通过出队和入队的方式来间接修改元素 + queue.Clear(); + queue.Enqueue(1); + queue.Enqueue(2); + queue.Enqueue(3); + #endregion + + #region 知识点四 遍历 + //1.长度 + Console.WriteLine(queue.Count); + //2.遍历 + foreach (object item in queue) + { + Console.WriteLine(item); + } + //3.转数组 + object[] arr = queue.ToArray(); + for(int i = 0; i < arr.Length; i++) + { + Console.WriteLine(arr[i]); + } + //4.循环出队 + while(queue.Count > 0) + { + Console.WriteLine(queue.Dequeue()); + } + #endregion + + #region 知识点五 + // 由于用万物之父来存储数据,自然存在装箱拆箱 + // 当往其中进行值类型存储时就是在装箱 + // 当将值类型对象取出来转换使用时,就存在拆箱 + #endregion + } + } +} diff --git a/C#进阶/Lesson3_Queue练习题/Lesson3_Queue练习题.csproj b/C#进阶/Lesson3_Queue练习题/Lesson3_Queue练习题.csproj new file mode 100644 index 0000000..2150e37 --- /dev/null +++ b/C#进阶/Lesson3_Queue练习题/Lesson3_Queue练习题.csproj @@ -0,0 +1,10 @@ + + + + Exe + net8.0 + enable + enable + + + diff --git a/C#进阶/Lesson3_Queue练习题/Program.cs b/C#进阶/Lesson3_Queue练习题/Program.cs new file mode 100644 index 0000000..5e80830 --- /dev/null +++ b/C#进阶/Lesson3_Queue练习题/Program.cs @@ -0,0 +1,22 @@ +using System.Collections; + +namespace Lesson3_Queue练习题 +{ + internal class Program + { + static void Main(string[] args) + { + Queue q = new Queue(); + for(int i = 0; i < 10; i++) + { + Console.WriteLine("请输入消息:"); + q.Enqueue(Console.ReadLine()); + } + for(int i = 0; i < 10; i++) + { + Thread.Sleep(1000); + Console.WriteLine(q.Dequeue()); + } + } + } +}