精华内容
下载资源
问答
  • C# 动态数组

    千次阅读 2015-09-27 16:35:04
    C#动态数组ArrayList用法 System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。 一.优点 1。支持自动改变大小的功能 2。可以灵活的插入元素 3。可以灵活的删除元素 ...

    C#动态数组ArrayList用法

    System.Collections.ArrayList类是一个特殊的数组。通过添加和删除元素,就可以动态改变数组的长度。

    一.优点

    1。支持自动改变大小的功能
    2。可以灵活的插入元素
    3。可以灵活的删除元素

    二.局限性

    跟一般的数组比起来,速度上差些

    三.添加元素

    1.publicvirtualintAdd(objectvalue);

    将对象添加到ArrayList的结尾处
    ArrayList aList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");

    内容为abcde


    2.publicvirtualvoidInsert(intindex,objectvalue);

    将元素插入ArrayList的指定索引处
    ArrayList aList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.Insert(0,"aa");
    结果为aaabcde

    3.publicvirtualvoidInsertRange(intindex,ICollectionc);

    将集合中的某个元素插入ArrayList的指定索引处
    ArrayList aList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    ArrayListlist2=newArrayList();
    list2.Add("tt");
    list2.Add("ttt");
    aList.InsertRange(2,list2);
    结果为abtttttcde

    四.删除

    1 publicvirtualvoidRemove(objectobj);

    从ArrayList中移除特定对象的第一个匹配项,注意是第一个
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.Remove("a");
    结果为bcde

    2.publicvirtualvoidRemoveAt(intindex);

    移除ArrayList的指定索引处的元素
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.RemoveAt(0);
    结果为bcde

    3.publicvirtualvoidRemoveRange(intindex,intcount);

    从ArrayList中移除一定范围的元素。Index表示索引,count表示从索引处开始的数目
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.RemoveRange(1,3);
    结果为ae

    4.publicvirtualvoidClear();

    从ArrayList中移除所有元素。

    五.排序

    a)publicvirtualvoidSort();
    对ArrayList或它的一部分中的元素进行排序。
    ArrayListaList=newArrayList();
    aList.Add("e");
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    DropDownList1.DataSource=aList;//DropDownListDropDownList1;
    DropDownList1.DataBind();
    结果为eabcd
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.Sort();//排序
    DropDownList1.DataSource=aList;//DropDownListDropDownList1;
    DropDownList1.DataBind();
    结果为abcde
    b)publicvirtualvoidReverse();
    将ArrayList或它的一部分中元素的顺序反转。
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    aList.Reverse();//反转
    DropDownList1.DataSource=aList;//DropDownListDropDownList1;
    DropDownList1.DataBind();
    结果为edcba

    六.查找

    a)publicvirtualintIndexOf(object);
    b)publicvirtualintIndexOf(object,int);
    c)publicvirtualintIndexOf(object,int,int);
    返回ArrayList或它的一部分中某个值的第一个匹配项的从零开始的索引。没找到返回-1。
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");
    intnIndex=aList.IndexOf(“a”);//1
    nIndex=aList.IndexOf(“p”);//没找到,-1
    d)publicvirtualintLastIndexOf(object);
    e)publicvirtualintLastIndexOf(object,int);
    f)publicvirtualintLastIndexOf(object,int,int);
    返回ArrayList或它的一部分中某个值的最后一个匹配项的从零开始的索引。
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("a");//同0
    aList.Add("d");
    aList.Add("e");
    intnIndex=aList.LastIndexOf("a");//值为2而不是0
    g)publicvirtualboolContains(objectitem);
    确定某个元素是否在ArrayList中。包含返回true,否则返回false

    七.其他

    1.publicvirtualintCapacity{get;set;}

    获取或设置ArrayList可包含的元素数。

    2.publicvirtualintCount{get;}

    获取ArrayList中实际包含的元素数。
    Capacity是ArrayList可以存储的元素数。Count是ArrayList中实际包含的元素数。Capacity总是大于或等于Count。如果在添加元素时,Count超过Capacity,则该列表的容量会通过自动重新分配内部数组加倍。
    如果Capacity的值显式设置,则内部数组也需要重新分配以容纳指定的容量。如果Capacity被显式设置为0,则公共语言运行库将其设置为默认容量。默认容量为16。
    在调用Clear后,Count为0,而此时Capacity切是默认容量16,而不是0

    3.publicvirtualvoidTrimToSize();

    将容量设置为ArrayList中元素的实际数量。
    如果不向列表中添加新元素,则此方法可用于最小化列表的内存系统开销。
    若要完全清除列表中的所有元素,请在调用TrimToSize之前调用Clear方法。截去空ArrayList会将ArrayList的容量设置为默认容量,而不是零。
    ArrayListaList=newArrayList();
    aList.Add("a");
    aList.Add("b");
    aList.Add("c");
    aList.Add("d");
    aList.Add("e");//Count=5,Capacity=16,
    aList.TrimToSize();//Count=Capacity=5;

    展开全文
  • c# 动态数组

    2015-10-25 18:19:47
    C#中的数组是可以动态分配长度的,实现动态数组有以下几种途径,这里说的动态数组包括动态分配大小和动态增加数据. 先来看原始数组:  int m = 5;  int[] array = newint[m];  array[0] = 2;  label1.Text = ...
    C#中的数组是可以动态分配长度的,实现动态数组有以下几种途径,这里说的动态数组包括动态分配大小和动态增加数据.
    先来看原始数组:
     int m = 5;
     int[] array = newint[m];
     array[0] = 2;
     label1.Text = array[0].ToString() + " + " +array.Length.ToString();
    结果的输出自然是 2 + 5;
     
    动态分配:
    1:m++;
      array = newint[m];//相当于重新初始化,原来的值被冲掉了  
      label2.Text =array[0].ToString() + " + " + array.Length.ToString();
    结果输出自然是 0 + 6;
    2:m++;
      Array.Resize(ref array,m);
      label2.Text =array[0].ToString() + " + " + array.Length.ToString();
    结果输出自然是 2 + 6;
    3:再有就是通过ArrayList的方法
     
    第1种方案适合能够事先能从某处读出来长度的情况;第2,3种方案最适合在事先不知道数据长度究竟有多少,只能来一个算一个的情况,个人感觉,这才是动态数组真正的用途,也就是能够随着数据的增加而自动扩容。
    在这方面ArrayList毫无疑问是首选,能够真正实现这个功能.
    ArrayList al = new ArrayList();
    al.Add(
    NewData);//单个添加
    如果增加的是同一类型的数据,用Array.Resize()也是能够实现的:
    if(产生了新数据)//增加个判断
    {
       m++;//假设数组原来的长度是m
       Array.Resize(ref array,m);
       array[m] = NewData;
    }
    虽然有同样的效果,但本质上是有差异的.ArrayList是真正的在变长.而System.Array.Resize这个泛型方法是 重新创建新设置大小的数组,用的是旧数组的元素初始化。随后以前的数组就废弃!也就是说并不是在原先的基础上扩容,而是新建了一个.但是无论如何在表面上看来确实实现了我们想要的功能.
    展开全文
  • C# 数组_C#动态数组详解整理

    千次阅读 2021-01-30 14:55:03
    一、C# 数组 Array 简介 namespace System public abstract class Array Array 类 (抽象类) 是C#中所有数组的基类,在System命名空间下。 使用如下: int[] nums = new int[] {1,2,3 }; Array 中定义的...

    一、C# 数组  Array

    简介

    namespace System
    
     public abstract class Array

    Array 类 (抽象类) 是C#中所有数组的基类,在System命名空间下。

    使用如下:

     int[] nums = new int[] {1,2,3 };

    Array 中定义的常用属性

    Length -- 数组个数

    Rank---数组纬度

    LongLength---多维度数组中,数据总个数。

     

    Array 中定义的方法

    实例方法:下标访问数组

                int[] nums = new int[] {1,2,3 };
                nums.SetValue(1,10);
                nums.GetValue(1);

    静态方法:

                //使用不多了,因为Linq的出现,使用更方便
                Array.Sort();
                Array.Reverse();
                Array.Copy();

     

    二、C# 动态数组  /  集合

    1. ArrayList 动态数组

    个数动态,类型动态,可以 跟JavaScript  的Array 对应。

    命名空间 : namespace System.Collections

    ArrayList 常用属性:

    Count ---数组个数

     

    ArrayList 常用方法:

    添加:Add(),Insert(),InsertRange()

    删除:Remove(),RemoveAt(),RemoveRange(), Clear()

    排序: Sort()   ,Reverse() 

    复制: Copy()

    案例:

                //动态数组
                ArrayList arrayList = new ArrayList();
                arrayList.Add(1);
                arrayList.Add("张三");

     

    2.字典数组 Dictionary<T,T>

     

    Dictionary 常用属性

    Count----数组个数

     

    Dictionary 常用方法

    添加: Add()

    移除: Remove() , Clear()

     

    案例:

                Dictionary<int, string> dic = new Dictionary<int, string>();
                dic.Add(1, "分类1");
                dic.Add(2, "分类2");

     

     

    3.List<T> 泛型集合 ,(主流,使用更灵活,尤其搭载Linq)

    List 常用属性

    Count---列表个数

     

    List 常用方法

    添加:Add(),AddRange()

    删除:Remove(),RemoveAt(),RemoveRange(), Clear()

    排序: Sort()   ,Reverse() 

    复制: Copy()

     

    跟数组转换:ToArray()

     

     

     

    更多:

    DotNet 开发项目类型整理_C#开发项目类型整理

     C#面向对象_C#面向对象开发开发整理

     C#面向对象_静态和实例,静态类和实例类,静态成员和实例成员

    展开全文
  • C#动态数组介绍

    2011-03-08 23:10:07
    C#数组有很多值得学习的地方,这里我们主要介绍C#动态数组,包括介绍C#动态数组的常用属性等方面。 C#动态数组对象是较为复杂的数组。我们可以将它看为扩充了功能的数组,但ArrayList并不等同于数组,与数组相比,...

    C#数组有很多值得学习的地方,这里我们主要介绍C#动态数组,包括介绍C#动态数组的常用属性等方面。

    C#动态数组对象是较为复杂的数组。我们可以将它看为扩充了功能的数组,但ArrayList并不等同于数组,与数组相比,它以下功能和区别是什么呢?让我们来看看具体的内容吧:

    1.数组的容量是固定的,但ArrayList的容量可以根据需要自动扩充。当我们修改了ArrayList的容量时,则可以自动进行内存重新分配和元素复制,比如往1号索引位插入n个元素,插入后,元素的索引依次向后n个位置排列,它是动态版本的数组类型。

    2.ArrayList提供添加、插入或移除某一范围元素的方法。但是在数组中,只能一次获取或设置一个元素的值,如利用索引赋值。

    3.ArrayList只有一维,而数组可以是多维。

    如何声明一个C#动态数组呢?

    1. ArrayList  AL=new ArrayList( Capacity );  
    2. //初始容量capacity也是可以不写的 

    原因就是即使不在初识化确定容量,容量不够的时候,会自动的按倍数作扩充。

    C#动态数组的常用属性
    ◆Capacity:获取或设置ArrayList可包含的元素数。
    ◆Count:获取ArrayList中实际包含的元素数。
    ◆IsReadOnly:获取一个值,该值表示ArrayList是否为只读。
    ◆Item:获取或设置指定索引处的元素。

    C#动态数组的常用方法
    ◆增加元素-ArrayList.Add(value);利用Add方法增加集合元素值,我们也可以索引增加元素ArrayList[Index]=value;
    ◆插入元素-ArrayList.Insert(Index,value);将元素的值value,插入到第Index位置。
    ◆删除元素-ArrayList.Clear();  全部删除集合中的元素
    ◆ArrayList.Remove(value);按照集合元素值删除元素
    ◆ArrayList.RemoveAt(Index);按照集合的元素索引删除元素
    ◆缩减容量-ArrayList.TrimToSize();将集合的容量减少到实际元素个数的大小

    在执行删除操作后,要养成良好的缩减容量的习惯,节省内存空间,提高性能。

    查找元素-除了按数组的索引查找外,还可以用ArrayList.Contains(value);按照元素值查找集合,如果包含便返回True,不包含时返回False。

    C#动态数组的基本情况就向你介绍到这里,希望对你学习和了解C#动态数组有所帮助。

    展开全文
  • C#动态数组ArrayLIst

    2019-06-12 07:25:55
    动态数组的定义: 动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。...
  • C#动态数组的常用方法

    万次阅读 2010-11-02 13:42:00
    C#数组有很多值得学习的地方,这里我们主要介绍C#动态数组,包括介绍C#动态数组的常用属性等方面。 C#动态数组对象是较为复杂的数组。我们可以将它看为扩充了功能的数组,但ArrayList并不等同于数组,与...
  • C# 动态数组ArrayList

    千次阅读 2019-02-13 16:16:13
    using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1211_动态数组ArrayList { class Program { ...
  • C#有关数组内存的释放及动态数组问题 一、数组内存释放问题 数组内存的释放可以按照如下语句实现: string [] aa=new string[2]; aa[0]="A"; aa[1]="B"; aa=null; 其中最后一句:aa=...
  • 清空数组>>>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...
  • C#定义动态数组(泛型)

    千次阅读 热门讨论 2015-01-09 21:58:33
    C#定义动态数组
  • C# 多维数组

    千次阅读 2017-03-04 23:14:49
    C# 多维数组 C# 支持多维数组。多维数组又称为矩形数组。 您可以声明一个 string 变量的二维数组,如下: string [,] names; 或者,您可以声明一个 int 变量的三维数组,如下: int [ , , ] m; 二维数组 多维数组最...
  • c# 定义动态数组方法

    千次阅读 2013-11-12 14:17:56
    c# 定义动态数组方法:  private Vector3 []a ; //保存点的位置 private float []v ;//保存从数据库中读取的float数值 在初始化函数start中定义如下:  num=20; a = new Vector3 [num]; v = new float...
  • c# 数组 数组列表 列表 foreach

    千次阅读 2014-06-02 10:58:15
    c# 数组 数组就是多个类型相同的变量,连续地放在内存中。 c#数组声明为 int [] a;a=new int [length];与c++的int a[length];不同。 static void Main(string[] args) { int[] a; a = new int[3] { 1...
  • C#多维数组

    2018-06-26 13:29:52
    C#多维数组C# 支持多维数组。多维数组又称为矩形数组。声明一个二维数组,如下: 类型[,] 数组名;声明一个三维数组,如下: 类型[,,] 数组名;二维数组多维数组最简单的形式是二维数组。一个二维数组,在本质上,是...
  • C# 字节数组截取

    千次阅读 2019-03-08 13:59:13
    C# 字节数组截取 如: byte[] bt = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 方法一 截取位数规则 1)截取2位长度的字节数组 用BitConverter.ToInt16 例如,从第2位开始截取2个字节则 BitConverter.ToInt16(bt...
  • C#数组

    热门讨论 2015-11-08 16:13:53
    C#数组
  • C#参数数组 params

    千次阅读 2017-05-22 19:35:56
    C# 参数数组解决了这个问题,参数数组通常用于传递未知数量的参数给函数。 params 关键字 在使用数组作为形参时,C# 提供了 params 关键字,使调用数组为形参的方法时,既可以传递数组实参,也可以只传递一组数组。...
  • C#数组

    千次阅读 2018-04-08 14:51:50
    一位数组和多维数组的静态初始化和动态初始化,以及交错数组的使用
  • C#数组中判断是否存在某个数组
  • C#数组

    热门讨论 2016-03-13 10:22:44
    种类:C# 中的数组主要有三种形式:一维数组、多维数组和不规则数组。 声明:C#中的数组是一个引用型类型,所以数组声明时,不需要给出数组的元素个数
  • C#数组的复制

    2014-03-05 17:35:21
    因为今天在写Java程序的时候数组复制出现了问题,所以也就查了查C#数组的复制。 同样的C#数组的复制也是进行的引用的传递,而不是值传递。 首先看一个实例: namespace ArrayDemo { class Program { ...
  • C#多维数组与嵌套数组 using System; namespace abc.e.f//等价于下面分层嵌套的写法。且这种写法不管命名空间abc有没有定义过,也不管命名空间e有没有定义过 { class MYTestX { static void Main(string...
  • C#字符数组

    2020-05-29 15:37:14
    字符串其实就是一系列的字符,因此也可以借助...C#中提供了string类型,.NET中也提供了String类和 StringBulider类,这些支持使得在C#中处理字符串信息十分 便利高效,因此不常使用字符数组来处理文本信息。 ...
  • C# 锯齿数组

    2017-07-09 15:00:32
    锯齿数组就是数组数组,但和多维数组不一样。 比如二维数组,是多个相同元素的一维数组,但是锯齿数组,下面每个数组的元素的个数不一样,维度也可以不一样。 //锯齿数组的两种初始化方式 int[][] a = new int...
  • C# 遍历数组

    千次阅读 2019-02-13 16:15:33
    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;...namespace _1210_遍历数组 { class Program { static void Main(string[] a...
  • C#交错数组浅析

    千次阅读 2012-04-09 22:35:10
    C#数组有很多值得学习的地方,这里我们主要介绍C#交错数组,包括介绍一维数组例、二维数组例、C#交错数组等方面。 数组是在我们编程当中经常用到的,想来大家对数组都有一定的概念,这部分内容将给大家详细讲解数组...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 185,637
精华内容 74,254
关键字:

c#动态数组

c# 订阅