c#清空数组&初始化数组&动态数组

清空数组>>>Array.Clear [去MSDN查看]

1 string[] str = new string[2];
2 for (int i = 0; i < str.Length; i++)
3     str[i] = i.ToString();
4 Array.Clear(str, 0, str.Length);
5 for (int i = 0; i < str.Length; i++)
6     Console.WriteLine(string.IsNullOrEmpty(str[i]) ? "null" : str[i]);
7 //输出结果:
8 //null
9 //null

初始化数组>>>Initialize [去MSDN查看]

只是用于初始化,如果数组子项已经被初始化,那么不会改变它的值.(删除下面代码 x[1] = 6; 试试)

 1 int[] x = new int[2];
 2 int[] y = new int[2];
 3 x[0] = 5; x[1] = 6;
 4 x.Initialize();
 5 y.Initialize();
 6 for (int i = 0; i < x.Length; i++)
 7     Console.WriteLine("x:{0}  y:{1}", x[i], y[i]);
 8 //输出结果:
 9 //x:5   y:0
10 //x:6   y:0

动态修改数组大小>>>Array.Resize [去MSDN查看]

处理流程是:先创建一个新的数组,然后把旧数组赋值过去.

 1 int[] x = new int[2];
 2 x[0] = 5; x[1] = 6;
 3 Array.Resize(ref x, x.Length + 2);
 4 for (int i = 0; i < x.Length; i++)
 5     Console.WriteLine("x[{0}]={1}",i, x[i]);
 6 //输出结果:
 7 //x[0]=5
 8 //x[1]=6
 9 //x[2]=0
10 //x[3]=0

如果数组较大,性能影响明显,建议用List<>的AddRange方法. [去MSDN查看]

 1 List<int> lst = new List<int>();
 2 lst.Add(3); lst.Add(4);
 3 int[] x = new int[2];
 4 x[0] = 5; x[1] = 6;
 5 lst.AddRange(x);
 6 for (int i = 0; i < lst.Count; i++)
 7     Console.WriteLine("lst[{0}]={1}", i, lst[i]);
 8 //输出结果:
 9 //lst[0]=3
10 //lst[1]=4
11 //lst[2]=5
12 //lst[3]=6

关于Array数组复制拷贝,倒叙,排序等,详情参见MSDN

时间: 2024-10-06 18:54:02

c#清空数组&初始化数组&动态数组的相关文章

线性表之顺序存储结构(C语言动态数组实现)

线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构 看到顺序存储结构的图示,我们可能会马上联想到C语言的数组.是的,数组就是一种典型的顺序存储数据结构.下面我通过一个实例,来实现对顺序存储结构中的数据增.删.改.查的操作. 首

Java动态数组

其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList.下面介绍一下ArrayList作为Java动态数组的用法. 1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度.ArrayList的下标是从0开始. 2.示例代码 [java] view plaincopy package wang48.j

C++之动态数组

C99支持一种名为变长数组的结构来方便程序员.C++也提供了一种长度可在程序运行时确定的数组类型:动态数组.声明格式为:(声明 int 类型的数组) 1 int ArraySize = 0; 2 //此处可修改 ArraySize 的值 3 int *a = new int[ArraySize]; 通过上面声明,就可创建程序需要大小的数组了.例如:通过下面小例子为一学生管理系统,在程序运行时,首先询问用户学生数量,然后创建合适的数组,并初始化后输出 1 #include<iostream> 2

动态数组vector

动态数组 动态数组可以实现长度的自由变化,但是通过vector的默认值可以基本判断所谓动态数组实际上还是一个普通数组,传递一个参数确定数组长度,如果没有传递参数,程序中其实默认进行设定.如果插入数据之后超过了已有长度,则在内部进行了一个创建第三方的过程,将现在的数组保存起来,然后再次创建一个新的长度的数组,然后根据插入值进行重新整合. 笔者并未看过源码,只是按照功能试着进行实现. 1.array.h 1 #pragma once 2 3 #include <iostream> 4 using

VB.NET 数组的定义 动态使用 多维数组

我们都知道在全部程序设计语言中数组都是一个非常重要的概念,数组的作用是同意程序猿用同一个名称来引用多个变量,因此採用数组索引来区分这些变量.非常多情况下利用数组索引来设置一个循环,这样就能够高效地处理复杂的情况,因此在非常多情况下,使用数组能够缩短或者简化程序的代码.本文主要介绍VB.NET数组的使用,希望对大家的使用带来帮助. 数组中的第一个元素的下标称为下界,最后一个元素的下标称为上界,其余的元素连续地分布在上下界之间,而且数组在内存中也是用连续的区域来存储的,所以要求声明数组每维的长度不能

asp动态数组

本文所说的 ASP 数组是指在 ASP 中以默认语言 VBScript 为语言的数组. 样例: Dim   MyArray() for   i   =   0   to   10 ReDim   Preserve   MyArray(i) MyArray(i)=i next 下标 ASP 数组的下标也是从 0 開始的. 要获取某个元素的值则在数组变量后面加上括号,括号里标明下标值,比方 arr(0),注意不是中括号,而是小括号. 定义 dim arr() '定义动态数组 dim arr2(2)

数据结构入门——动态数组

数组的一大缺点就是长度定义后不能再改变,此程序实现了动态数组,类似于Java中的ArrayList的结构,有增.删.排序.遍历.扩容追加等功能. 动态数组的实现: /* 2013年2月16日19:18:35 此程序将数组中的元素进行追加.删除.排序.遍历输出等操作. 与java中的各方法相同,从而更加深入理解java中的方法. */ # include <stdio.h> # include <malloc.h> # include <stdlib.h> struct

用最复杂的方式学会数组(Python实现动态数组)

Python序列类型 在本博客中,我们将学习探讨Python的各种"序列"类,内置的三大常用数据结构--列表类(list).元组类(tuple)和字符串类(str). 不知道你发现没有,这些类都有一个很明显的共性,都可以用来保存多个数据元素,最主要的功能是:每个类都支持下标(索引)访问该序列的元素,比如使用语法 Seq[i].其实上面每个类都是使用 数组 这种简单的数据结构表示. 但是熟悉Python的读者可能知道这3种数据结构又有一些不同:比如元组和字符串是不能修改的,列表可以修改.

《C语言中动态数组的创建及引用》

C语言中动态数组的创建及引用 动态数组是相对于静态数组而言的,静态数组的长度是预定义好的,在整个程序中,一旦给定了数组大小后就无法改变,,而动态数组则不然,它可以根据程序需要重新指定数组的大小.动态数组的内存空间是由堆动态分配的,通过执行代码为其分配储存空间,只有程序执行到分配语句时,才为其分配储存空间. 对于动态数组,其创建比静态数组更麻烦一些,使用完必须由程序员自己释放,否则将引起内存泄漏,但是其使用非常灵活,能根据程序需要动态分配大小,因此相对于静态数组来说,使用动态数组的自由度更大. 对

Chapter5_初始化与清理_数组初始化与可变参数列表

一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥有这个数组的存储空间.要获取数组的存储空间,必须要写初始化表达式,最朴素的表达式类型如下 1 int[] a = {1,2,3}; 如果在编写程序时,不能确定数组的长度,可以使用如下方式,直接用new在数组里创建元素 1 int[] a = new int[3]; 当创建对象数组时,数组中的元素仅仅