调整C#中数组大小的方法

来自:网络
时间:2024-09-10
阅读:

前言

数组存储多个相同类型的一种非常常用的数据结构。它长度是固定,也就是数组一旦创建大小就固定了。C# 数组不支持动态长度。那在C#中是否有方法可以调整数组大小呢?本文将通过示例介绍一种调整一维数组大小的方法。

方法

数组实例是从 System.Array 类继承类型的对象。我们可以使用 Array.Resize<T> 方法调整数组大小。此方法只允许我们将一维数组中的元素数量更改为指定的大小。

1、方法定义:

Resize 方法定义如下:

public static void Resize<T>(ref T[] array, int newSize);

T: 数组中元素的类型。

数组: 需调整大小的一维数组、基于零的数组,或为空以创建具有指定大小的新数组。

newSize: 调整后数组大小。

示例

我们通过一些例子,了解调整大小如何影响数组。

1、调大数组:

using System;
namespace Fountain.WinConsole.OtherDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 定义数组
            string[] carriers = { "ZTO", "SF", "YTO", "JT", "EMS", "YUNDA"};
            // 输出 数组大小:6
            Console.WriteLine("数组大小:{0}",carriers.Length);
            // 将数组调整为更大的大小
            Array.Resize(ref carriers, carriers.Length+5);
            // 输出 调整后数组大小:11
            Console.WriteLine("调整后数组大小:{0}", carriers.Length);
            // 任意键退出
            Console.Read();
        }
    }
}

2、调小数组:

using System;
namespace Fountain.WinConsole.OtherDemo
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 定义数组
            string[] carriers = { "ZTO", "SF", "YTO", "JT", "EMS", "YUNDA"};
            // 输出 数组大小:6
            Console.WriteLine("数组大小:{0}",carriers.Length);
            // 将数组调整为更大的大小
            Array.Resize(ref carriers, 4);
            // 输出 调整后数组大小:4
            Console.WriteLine("调整后数组大小:{0}", carriers.Length);
            // 输出 ZTO SF YTO JT
            for (int i = 0; i < carriers.Length; i++)
            {
                // 输出调正后的数组元素
                Console.Write("{0} ", carriers[i]);
            }
            // 任意键退出
            Console.Read();
        }
    }
}

事项

1、Array.Resize 方法分配指定大小的新数组,并将元素从原数组复制到新数组,然后再将原数组替换为新数组。

2、如果数组为空,则创建一个指定大小的新数组。

3、如果 newSize 大于原数组的长度,则分配一个新数组,并将原数组的所有元素复制到新数组。

4、如果 newSize 小于原数组的长度,则分配一个新数组,并将原数组元素填充到新数组,直到新数组被填充完,原数组中的其余元素会被忽略。

小结

返回顶部
顶部