C#中的列表在数据存储和检索中起着非常重要的作用。以下是 C# 中通用列表 ( List
语法:
List<T> list_name = new List<T>();
说明:上述语句中List
我们还可以借助 IList
IList<T> list_name = new List<T>();
为了与 List 合作,首先,我们需要在程序中导入System.Collections.Generic命名空间。
C# 中创建列表的方法有很多种,例如:
示例:
List<int> lstNum = new List<int>();
上面的语句将创建一个具有默认容量的整数列表。如果用户未定义列表的容量,则每次将项目添加到列表时,列表的大小都会增加。
ASP.NET 培训(9 门课程,19 个项目).NET 培训计划(5 门课程,19 个项目)
示例:
lstNum.Add(1); lstNum.Add(2); lstNum.Add(3);
创建一个由用户定义容量的列表。
示例:
List<string> lstString = new List<string>(3);
上面的语句将创建一个容量为 3 的字符串列表。当向列表添加三个以上元素时,容量会自动扩展。我们还可以在初始化列表时将项目添加到列表中。
List<string> lstString = new List<string>(3) { "Neha", "Shweta", "Megha" };
我们还可以借助另一个元素集合来创建列表。
示例:
//string array of names string[] names = {"Neha", "Shweta", "Megha"}; //creating list by using string array List<string> lstNames = new List<string>(names);
我们可以使用 AddRange() 方法将另一个元素集合添加到列表中。
示例:
string[] names = {"Neha", "Shweta", "Megha"}; List<string> lstNames = new List<string>(); //adding elements of string array to list lstNames.AddRange(names);
让我们讨论List类的一些重要方法如下:
该方法用于在列表末尾添加一个对象。它可以为引用类型添加空值。
示例:
using System; using System.Collections.Generic; public class ListDemo { public static void Main() { List<int> lstNum = new List<int>(){1, 2, 3, 4}; //Adding 5 at the end of list lstNum.Add(5); foreach(int num in lstNum) { Console.WriteLine(num); } } }
输出:
此方法用于删除列表中的所有元素。
示例:
using System; using System.Collections.Generic; public class ListDemo { public static void Main() { List<int> lstNum = new List<int>(){1, 2, 3, 4, 5}; //removing all elements from the list lstNum.Clear(); if(lstNum.Count > 0) Console.WriteLine("List is not empty"); else Console.WriteLine("List is empty"); } }
输出:
该方法用于在列表中的指定位置插入一个元素。它有两个参数,第一个参数是要插入元素的索引号,第二个参数是元素本身。
示例:
using System; using System.Collections.Generic; public class ListDemo { public static void Main() { List<string> lstCities = new List<string>(){"Mumbai", "Pune", "Bengaluru"}; //inserting element at third position lstCities.Insert(2, "Chennai"); foreach(string city in lstCities) { Console.WriteLine(city); } } }
输出:
此方法用于从列表中删除指定位置的项目。
示例:
using System; using System.Collections.Generic; public class ListDemo { public static void Main() { List<string> lstCities = new List<string>() {"Mumbai","Pune","Bengaluru"}; Console.WriteLine("Initial list values"); foreach(string city in lstCities) { Console.WriteLine(city); } //removing element at second position lstCities.RemoveAt(1); Console.WriteLine("\nAfter removing element at second position"); foreach(string city in lstCities) { Console.WriteLine(city); } } }
输出:
此方法用于使用默认比较器对列表的元素进行排序。
示例:
using System; using System.Collections.Generic; public class ListDemo { public static void Main() { List<string> lstCities = new List<string>(){"Mumbai","Pune","Bengaluru"}; Console.WriteLine("Initial list values"); foreach(string city in lstCities) { Console.WriteLine(city); } //sorting elements in ascending order lstCities.Sort(); Console.WriteLine("\nList after sorting in ascending order"); foreach(string city in lstCities) { Console.WriteLine(city); } //sorting elements in descending order by calling Reverse() lstCities.Reverse(); Console.WriteLine("\nList after sorting in descending order"); foreach(string city in lstCities) { Console.WriteLine(city); } } }
输出:
在上面的程序中,首先,我们使用 Sort() 对列表进行升序排序。现在,为了按降序对列表进行排序,我们对已排序的列表调用 Reverse() 方法。我们可以使用 Sort() 方法对 int、string 等类型的列表进行排序,但要对自定义对象类型的列表进行排序,我们需要实现 IComparable 接口,或者也可以使用 LINQ。我们可以用另一种方式对这种类型的列表进行排序,如下例所示:
示例:
using System; using System.Collections.Generic; public class Student { public string Name { get; set; } public int Marks { get; set; } public Student(string name, int marks) { Name = name; Marks = marks; } } public class ListDemo { public static void Main() { List<Student> lstStudents = new List<Student>(); lstStudents.Add(new Student("Neha", 90)); lstStudents.Add(new Student("John", 75)); lstStudents.Add(new Student("Kate", 88)); lstStudents.Add(new Student("Arya", 70)); //sorting students in ascending order of their marks lstStudents.Sort(CompareMarks); foreach (Student student in lstStudents) { Console.WriteLine(student.Name + ": " + student.Marks); } } public static int CompareMarks(Student student1, Student student2) { return student1.Marks.CompareTo(student2.Marks); } }
输出:
列表
以上是C# 中的列表的详细内容。更多信息请关注PHP中文网其他相关文章!