C#数组之 []、List、Array、ArrayList应用

 代码如下 复制代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // System.Int32 是结构
        int[] arr = new int[] { 1, 2, 3 };
        Response.Write(arr[0]); // 1
        Change(arr);
        Response.Write(arr[0]); // 2

        // List 的命名空间是 System.Collections.Generic
        List<int> list = new List<int>();
        list.Add(1);
        list.Add(2);
        list.Add(3);
        Response.Write(list[0]); // 1
        Change(list);
        Response.Write(list[0]); // 2

        // Array 的命名空间是 System
        Array array = Array.CreateInstance(System.Type.GetType("System.Int32"), 3); // Array 是抽象类,不能使用 new Array 创建。
        array.SetValue(1, 0);
        array.SetValue(2, 1);
        array.SetValue(3, 2);
        Response.Write(array.GetValue(0)); // 1
        Change(array);
        Response.Write(array.GetValue(0)); // 2

        // ArrayList 的命名空间是 System.Collections
        ArrayList arrayList = new ArrayList(3);
        arrayList.Add(1);
        arrayList.Add(2);
        arrayList.Add(3);
        Response.Write(arrayList[0]); // 1
        Change(arrayList);
        Response.Write(arrayList[0]); // 2
    }

    private void Change(int[] arr)
    {
        for (int i = 0; i < arr.Length; i++)
        {
            arr[i] *= 2;
        }
    }

    private void Change(List<int> list)
    {
        for (int i = 0; i < list.Count; i++) // 使用 Count
        {
            list[i] *= 2;
        }
    }

    private void Change(Array array)
    {
        for (int i = 0; i < array.Length; i++) // 使用 Length
        {
            array.SetValue((int)array.GetValue(i) * 2, i); // 需要类型转换
        }
    }

    private void Change(ArrayList arrayList)
    {
        for (int i = 0; i < arrayList.Count; i++) // 使用 Count
        {
            arrayList[i] = (int)arrayList[i] * 2; // 需要类型转换
        }
    }
}

[] 是针对特定类型、固定长度的。

List 是针对特定类型、任意长度的。

Array 是针对任意类型、固定长度的。

ArrayList 是针对任意类型、任意长度的。

Array 和 ArrayList 是通过存储 object 实现任意类型的,所以使用时要转换

时间: 2024-09-22 09:53:18

C#数组之 []、List、Array、ArrayList应用的相关文章

asp.net c#中[],List,Array,ArrayList的区别

asp教程.net c#中[],List,Array,ArrayList的区别 [] 是针对特定类型.固定长度的. List 是针对特定类型.任意长度的. List 类是 ArrayList 类的泛型等效类,某些情况下,用它比用数组和 ArrayList 都方便. 我们假设有一组数据,其中每一项数据都是一个结构. public struct Item {     public int Id;     public string DisplayText; } 注意结构是不能给实例字段赋值的,即 p

模板-有关获取数组长度sizeof(array) / sizeof(array[0])的问题

问题描述 有关获取数组长度sizeof(array) / sizeof(array[0])的问题 下面就是一个简单程序,请问为什么在ranking函数中调用getArrayLen()时输出的N值不是7,而是1? #include using namespace std; template int getArrayLen(T& array) //使用模板定义一个函数getArrayLen,该函数将返回数组array的长度 { return (sizeof(array) / sizeof(array

编程-数组类模板Array,类中包括对数组进行排序、查找和求元素和 然后由此产生模板类Array&amp;amp;lt;Box&amp;amp;gt;

问题描述 数组类模板Array,类中包括对数组进行排序.查找和求元素和 然后由此产生模板类Array<Box> #include using namespace std;class Box{private: int a b c;public: int V; Box(int chint kint g) { a = ch; b = k; c = g; V = a*b*c; } bool operator <(Box &one) { int temp = V - one.V; if (

JavaScript判断变量是否为数组的方法(Array)_javascript技巧

 今天小编给大家整理些关于javascript判断变量是否是数组(Array)的相关知识,主要通过以下四点给大家展开话题,具体内容如下所示: 1. typeof真的那么厉害吗?? //首先看代码 var ary = [1,23,4]; console.log(typeof ary); //输出结果是Object 上面的办法并不能实时的检测出是否是数组,只能判断其类型,所以说typeof判断基本类型数据还是挺好的,但是不能准确测试出是否是数组(typeof的具体用法以后提及,现在回归正题) 2.i

重构——22以对象取代数组(Replace Array with Object)

以对象取代数组(Replace Array with Object) 你有一个数组,其中的元素各自代表不同的东西:以对象替换数组.对于数组中的每个元素,以一个字段来表示 一.动机 数组应该只用于"以某种顺序容纳一组相似对象" 二.做法 1.新建一个类表示数组所拥有的信息,并在其中以一个public字段保存原先的数组 2.修改数组的所有用户,让它们改用新类的实例 3.编译,测试 4.逐一为数组元素添加取值/设值函数.根据元素的用途,为这些访问函数命名.修改客户端代码,让它们通过访问函数取

PHP数组的交集array

返回一个交集共有元素的数组(只是数组值得比较).array_intersect_assoc()函数是将键值和值绑定,一起比较交集部分.array_intersect_key()函数是将两个数组的键值进行比较,返回键值交集的数组.但实际应用中也遇到了一些小问题,正如下: 实例: 复制代码 代码如下: <?PHP $array = array("red"=>"Red","green"=>"red4","

PHP对象转数组(Object转Array),Json转数组(Json转Array)的方法

(1)php对象转数组的方法(object 转 array): /** * object 转 array */ function object_to_array($obj){ $_arr=is_object($obj)?get_object_vars($obj):$obj; foreach($_arr as $key=>$val){ $val=(is_array($val))is_object($val)?object_to_array($val):$val; $arr[$key]=$val;

php数组函数库array建立数组

函数|数组 1.新建数组使用array array array ( [mixed ...] )   返回根据参数建立的数组.参数可以用 => 运算符给出索引.关于数组是什么的信息请阅读数组一节. 注: array() 是一个语言结构,用于字面上表示数组,不是常规的函数. 语法"index => values",用逗号分开,定义了索引和值.索引可以是字符串或数字.如果省略了索引,会自动产生从 0 开始的整数索引.如果索引是整数,则下一个产生的索引将是目前最大的整数索引 + 1

PHP合并数组+号和array

  这篇文章主要介绍了PHP合并数组+号和array_merge的区别,PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别,需要的朋友可以参考下 PHP的数组融合一般有两种做法,一种是直接使用加号相加,另一种则是使用array_merge函数进行相加,两者之间有点区别: 1.相加会证数组中的自然index不被重置 2.相加方法中,被加的数组内的值不会被覆盖 3.merge函数中的自然index会被重置 4.merge函数,无

『0014』 - Solidity Types - 动态大小字节数组(Dynamically-sized byte array)

孔壹学院:国内区块链职业教育领先品牌 作者:黎跃春,区块链.高可用架构工程师 微信:liyc1215 QQ群:348924182 博客:http://liyuechun.org 一.Dynamically-sized byte array string 是一个动态尺寸的UTF-8编码字符串,它其实是一个特殊的可变字节数组,string是引用类型,而非值类型. bytes 动态字节数组,引用类型. 根据经验,在我们不确定字节数据大小的情况下,我们可以使用string或者bytes,而如果我们清楚的