这是一个小程序,用于添加,删除,插入项目(双)到Ilist集合中.
class ProgramL
{
static void Main(string[] args)
{
IList<double> myList = new List<double>();
myList.Add(1.54);
myList.Add(56.54);
myList.Insert(1,58.54);
myList.Add(11.44);
myList.Add(121.44);
myList.Add(111.44);
myList.Add(1221.44);
myList.Add(1331.44);
myList.Add(161.44);
myList.Add(21.58);
myList.Remove(21.58);
Console.ReadLine();
}
}
Run Code Online (Sandbox Code Playgroud)
所以在添加,插入和删除操作之后还剩下9个项目.但根据图片,为什么该列表包含16个项目.最后7项初始化为0.0值.

任何人都可以向我解释一下吗?
谢谢
有两个数字:
Count - 添加到列表中的实际元素数Capacity - 用于存储引擎盖下元素的数组大小它是为了提高性能并减少用于List<T>存储元素的底层数组的分配数量.
当您实例化列表并添加第一个元素时,它将使用初始容量(4个元素)创建.添加元素并且现有容量不足时,将重新分配基础数组以包含两倍的元素.这是因为重新分配数组非常昂贵,并且您不希望每次将元素添加到列表时都会发生这种情况.
您可以使用TrimExcess方法使基础数组大小更接近集合中的项目数.
如果不将新元素添加到集合中,则此方法可用于最小化集合的内存开销.但是,重新分配和复制大型文件的成本
List<T>可能相当大,因此TrimExcess如果列表容量超过90%,则该方法无效.这避免了相对较小的增益导致大的重新分配成本.
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |