您现在的位置是:亿华云 > IT科技

一篇学会 C# 集合类型

亿华云2025-10-03 16:06:28【IT科技】8人已围观

简介对于许多应用程序,你会想要创建和管理相关对象的组。有两种方法对对象进行分组:通过创建对象的数组,以及通过创建对象的集合。数组最适用于创建和使用固定数量的强类型化对象。集合提供更灵活的方式来使用对象组。

 对于许多应用程序,篇学你会想要创建和管理相关对象的集合组。有两种方法对对象进行分组:通过创建对象的类型数组,以及通过创建对象的篇学集合。

数组最适用于创建和使用固定数量的集合强类型化对象。

集合提供更灵活的类型方式来使用对象组。与数组不同,篇学你使用的集合对象组随着应用程序更改的需要动态地放大和缩小。对于某些集合,类型你可以为放入集合中的篇学任何对象分配一个密钥,这样你便可以使用该密钥快速检索此对象。集合

集合是香港云服务器类型一个类,因此必须在向该集合添加元素之前,篇学声明类的集合实例。

如果集合中只包含一种数据类型的类型元素,则可以使用 System.Collections.Generic 命名空间中的一个类。泛型集合强制类型安全,因此无法向其添加任何其他数据类型。当你从泛型集合检索元素时,你无需确定其数据类型或对其进行转换。

创建字符串列表,并通过使用 foreach 语句循环访问字符串。

// Create a list of strings. var salmons = new List<string>(); salmons.Add("chinook"); salmons.Add("coho"); salmons.Add("pink"); salmons.Add("sockeye"); // Iterate through the list. foreach (var salmon in salmons) {      Console.Write(salmon + " "); } // Output: chinook coho pink sockeye 

如果集合中的内容是事先已知的,则可以使用集合初始值设定项来初始化集合。亿华云

// Create a list of strings by using a // collection initializer. var salmons = new List<string> {  "chinook", "coho", "pink", "sockeye" }; // Iterate through the list. foreach (var salmon in salmons) {      Console.Write(salmon + " "); } // Output: chinook coho pink sockeye 

可以使用 for 语句,而不是 foreach 语句来循环访问集合。通过按索引位置访问集合元素实现此目的。元素的索引开始于 0,结束于元素计数减 1。

以下示例通过使用 for 而不是 foreach 循环访问集合中的元素。

// Create a list of strings by using a // collection initializer. var salmons = new List<string> {  "chinook", "coho", "pink", "sockeye" }; for (var index = 0; index < salmons.Count; index++) {      Console.Write(salmons[index] + " "); } // Output: chinook coho pink sockeye 

对于 List中的元素类型,还可以定义自己的类。在下面的示例中,由 List使用的 Galaxy 类在代码中定义。服务器托管

private static void IterateThroughList() {      var theGalaxies = new List<Galaxy>         {              new Galaxy() {  Name="Tadpole", MegaLightYears=400},             new Galaxy() {  Name="Pinwheel", MegaLightYears=25},             new Galaxy() {  Name="Milky Way", MegaLightYears=0},             new Galaxy() {  Name="Andromeda", MegaLightYears=3}         };     foreach (Galaxy theGalaxy in theGalaxies)     {          Console.WriteLine(theGalaxy.Name + "  " + theGalaxy.MegaLightYears);     }     // Output:     //  Tadpole  400     //  Pinwheel  25     //  Milky Way  0     //  Andromeda  3 } public class Galaxy {      public string Name {  get; set; }     public int MegaLightYears {  get; set; } } 

很赞哦!(15415)