is there in C# a method for List like resize in c++ for vector

后端 未结 7 1385
無奈伤痛
無奈伤痛 2021-01-03 18:14

When I use resize(int newsize) in C++ for vector, it means that the size of this vector are set to newsize

7条回答
  •  无人及你
    2021-01-03 19:06

    Just to make Jon Hanna's answer more readable:

    public static class ListExtras
    {
        //    list: List to resize
        //    size: desired new size
        // element: default value to insert
    
        public static void Resize(this List list, int size, T element = default(T))
        {
            int count = list.Count;
    
            if (size < count)
            {
                list.RemoveRange(size, count - size);
            }
            else if (size > count)
            {
                if (size > list.Capacity)   // Optimization
                    list.Capacity = size;
    
                list.AddRange(Enumerable.Repeat(element, size - count));
            }
        }
    }
    

提交回复
热议问题