List<T>
是 C# 中的一个泛型集合类,用于存储相同类型的元素。它提供了动态数组的功能,允许你在运行时动态地添加、删除和修改元素。List<T>
的索引从 0 开始,因此第一个元素的索引是 0,第二个元素的索引是 1,依此类推。
你可以使用 Add
方法将元素添加到 List<T>
中:
List<int> myList = new List<int>();
myList.Add(1);
myList.Add(2);
myList.Add(3);
List<T>
会自动维护元素的索引。当你添加或删除元素时,List<T>
会重新分配索引以保持连续性。
List<T>
广泛应用于需要存储和操作动态数组的场景,例如:
以下是一个完整的示例,展示了如何将元素添加到 List<T>
并恢复索引:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
List<int> myList = new List<int>();
// 添加元素
myList.Add(1);
myList.Add(2);
myList.Add(3);
// 输出当前索引和元素
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine($"Index: {i}, Value: {myList[i]}");
}
// 删除元素
myList.RemoveAt(1);
// 输出删除后的索引和元素
Console.WriteLine("After removing element at index 1:");
for (int i = 0; i < myList.Count; i++)
{
Console.WriteLine($"Index: {i}, Value: {myList[i]}");
}
}
}
原因:List<T>
是一个动态数组,当你删除一个元素时,为了保持数组的连续性,所有后续元素的索引都会向前移动。
解决方法:如果你需要频繁地插入和删除元素,并且希望保持索引不变,可以考虑使用 Dictionary<int, T>
或 SortedDictionary<int, T>
,这些集合类允许你手动管理索引。
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
Dictionary<int, int> myDict = new Dictionary<int, int>();
// 添加元素
myDict.Add(0, 1);
myDict.Add(1, 2);
myDict.Add(2, 3);
// 输出当前索引和元素
foreach (var kvp in myDict)
{
Console.WriteLine($"Index: {kvp.Key}, Value: {kvp.Value}");
}
// 删除元素
myDict.Remove(1);
// 输出删除后的索引和元素
Console.WriteLine("After removing element at index 1:");
foreach (var kvp in myDict)
{
Console.WriteLine($"Index: {kvp.Key}, Value: {kvp.Value}");
}
}
}
领取专属 10元无门槛券
手把手带您无忧上云