首页 >后端开发 >C#.Net教程 >C# 中的列表

C# 中的列表

王林
王林原创
2024-09-03 15:28:00656浏览

C#中的列表在数据存储和检索中起着非常重要的作用。以下是 C# 中通用列表 ( List ) 的一些要点:

  • 列表
  • 它位于收藏夹下。通用命名空间。
  • 列表中的元素可以通过其索引号来访问,列表中的索引从零开始。
  • 列表可以动态调整大小。
  • 如果列表的元素是引用类型,那么列表也可以接受空值。
  • 它允许元素重复。

语法:

List<T> list_name = new List<T>();

说明:上述语句中List

我们还可以借助 IList

IList<T> list_name = new List<T>();

如何用 C# 创建列表?

为了与 List 合作,首先,我们需要在程序中导入System.Collections.Generic命名空间。

C# 中创建列表的方法有很多种,例如:

  • 使用 List

示例:

List<int> lstNum = new List<int>();

上面的语句将创建一个具有默认容量的整数列表。如果用户未定义列表的容量,则每次将项目添加到列表时,列表的大小都会增加。

ASP.NET 培训(9 门课程,19 个项目).NET 培训计划(5 门课程,19 个项目)

  • 我们可以使用 Add() 方法将项目添加到列表中。

示例:

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);

C# 中的 List 方法及示例

让我们讨论List类的一些重要方法如下:

1.添加(T)

该方法用于在列表末尾添加一个对象。它可以为引用类型添加空值。

示例:

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);
}
}
}

输出:

C# 中的列表

2.清除()

此方法用于删除列表中的所有元素。

示例:

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");
}
}

输出:

C# 中的列表

3.插入(Int32,T)

该方法用于在列表中的指定位置插入一个元素。它有两个参数,第一个参数是要插入元素的索引号,第二个参数是元素本身。

示例:

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);
}
}
}

输出:

C# 中的列表

4.移除At( Int32 )

此方法用于从列表中删除指定位置的项目。

示例:

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);
}
}
}

输出:

C# 中的列表

5.排序()

此方法用于使用默认比较器对列表的元素进行排序。

示例:

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);
}
}
}

输出:

C# 中的列表

在上面的程序中,首先,我们使用 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# 中的列表

结论

列表

以上是C# 中的列表的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
上一篇:Collections in C#下一篇:C# LinkedList