当前位置: 首页 > news >正文

如何调整C#中数组的大小

前言

数组存储多个相同类型的一种非常常用的数据结构。它长度是固定,也就是数组一旦创建大小就固定了。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 小于原数组的长度,则分配一个新数组,并将原数组元素填充到新数组,直到新数组被填充完,原数组中的其余元素会被忽略。

小结

以上是C#中使用 Array.Resize<T> 方法调整数组大小的内容。希望对大家能带来一些帮助,如有不到之处,请多多包涵。

http://www.lryc.cn/news/382059.html

相关文章:

  • 通过言语和非言语检索线索描绘睡眠中的记忆再激活茗创科技茗创科技
  • MDPI旗下SSCI最新影响因子目录出炉!“水刊“Sustainability表现如何?
  • Matlab基础篇:数据输入输出
  • MySQL字典数据库设计与实现 ---项目实战
  • python数据分析——数据预处理
  • 【Python】使用matplotlib绘制图形(曲线图、条形图、饼图等)
  • vue下载本地xls模版静态文件
  • 手机开热点,里面的WPA2-Personal和WPA3-Personal的区别
  • 算法课程笔记——点积叉积
  • 详解 | DigiCert EV代码签名证书
  • pdf压缩大小,PDF压缩大小不影响清晰度
  • 项目管理必备工具:2024年十大软件排行榜
  • SOLIDWORKS专业版2024价格
  • 【外快业务】百度网盘扫码源码系统部署过程记录。
  • lucene原理
  • 华为、H3C交换机常用巡检命令
  • 网络安全 DVWA通关指南 SQL Injection(SQL注入)
  • 【Linux】版本
  • 代码随想录算法训练营day47
  • 【Android面试八股文】Kotlin内置标准函数apply的原理是什么?
  • RegionClip环境安装踩坑指南
  • MySQL数据类型、运算符以及常用函数
  • 算法设计与分析:动态规划法求扔鸡蛋问题 C++
  • Java项目:基于SSM框架实现的电子竞技管理平台【ssm+B/S架构+源码+数据库+毕业论文】
  • Scala入门介绍
  • 品牌策划背后的秘密:我为何对此工作情有独钟?
  • 超越招聘技术人才目标的最佳技术招聘统计数据
  • cocos creator 调试插件
  • Clickhouse监控_监控的指标以及Grafana配置Clickhouse指标异常时触发报警
  • 动手学深度学习(Pytorch版)代码实践 -卷积神经网络-27含并行连结的网络GoogLeNet