【转】c#中数组赋值方法
C#中数组复制有多种方法,数组间的复制
int[] pins = {,,,};
int [] alias = pins;
这里出了错误,也是错误的根源,以上代码并没有出错,但是根本不是复制,因为pins和alias都是引用,存在于堆栈中,而数据9,3,4,3是一个int对象存在于堆中,int [] alias = pins;只不过是创建另一个引用,alias和pins同时指向{9,3,4,3},当修改其中一个引用的时候,势必影响另一个。复制的意思是新建一个和被复制对象一样的对象,在C#语言中应该有如下4种方法来复制。
方法一:使用for循环
int []pins = {,,,}
int []copy = new int[pins.length];
for(int i =;i!=copy.length;i++)
{
copy[i] = pins[i];
}
方法二:使用数组对象中的CopyTo()方法
int []pins = {,,,}
int []copy2 = new int[pins.length];
pins.CopyTo(copy2,);
方法三:使用Array类的一个静态方法Copy()
int []pins = {,,,}
int []copy3 = new int[pins.length];
Array.Copy(pins,copy3,copy.Length);
方法四:使用Array类中的一个实例方法Clone(),可以一次调用,最方便,但是Clone()方法返回的是一个对象,所以要强制转换成恰当的类类型。
int []pins = {,,,}
int []copy4 = (int [])pins.Clone();
方法五:
string[] student1 = { "$", "$", "c", "m", "d", "", "", "", "", "", "" };
string[] student2 = { "", "", "", "", "", "", "", "", "", "", "","","", "", "" };
ArrayList student = new ArrayList();
foreach (string s1 in student1)
{
student.Add(s1);
}
foreach (string s2 in student2)
{
student.Add(s2);
}
string[] copyAfter = (string[])student.ToArray(typeof(string));
两个数组合并,最后把合并后的结果赋给copyAfter数组,这个例子可以灵活变通,很多地方可以用。
【转】c#中数组赋值方法的更多相关文章
- JavaScript -- 时光流逝(二):js中数组的方法
JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...
- 前端面试之JavaScript中数组的方法!【残缺版!!】
前端面试之JavaScript中数组常用的方法 7 join Array.join()方法将数组中所有元素都转化为字符串并连接在-起,返回最后生成的字 符串.可以指定一个可选的字符串在生成的字符串中来 ...
- javascript中数组的方法你真的都了解吗?
本篇文章主要讲述ES5中的数组,包括数组两种创建方式,属性,以及 9 大类 ,总共23个操作方法,非常全面,看完之后ES5数组这一部分基本都了解了,下一篇文章,我会讲述ES6中对数组的加成,新增了哪些 ...
- JavaScript中数组Array方法详解
ECMAScript 3在Array.prototype中定义了一些很有用的操作数组的函数,这意味着这些函数作为任何数组的方法都是可用的. 1.Array.join()方法 Array.join()方 ...
- JavaScript中数组map()方法
JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果.语法 ? 1 array.map(callback[, thisObject]); 下面是参数的 ...
- javascript中数组的方法
数组的方法 1.concat():连接两个或多个数组 2.indexOf(arg): 查找数组中的arg元素,如果没有,则返回-1,如果有,则返回该元素的最小下标 lastIndexOf(ar ...
- ECMAScript 6中数组新方法
数组的方法 数组的的大部分方法都可以实现数组的遍历. foreach方法 实现数组的遍历 const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.forEach(fu ...
- js中数组去重方法及性能对比
js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...
- linux shell数组赋值方法(常用)
http://blog.csdn.net/shaobingj126/article/details/7395161 Bash中,数组变量的赋值有两种方法: (1) name = (value1 ... ...
随机推荐
- 【BestCoder Round #93 1002】MG loves apple
[题目链接]:http://acm.hdu.edu.cn/showproblem.php?pid=6020 [题意] 给你一个长度为n的数字,然后让你删掉k个数字,问你有没有删数方案使得剩下的N-K个 ...
- Python3:ImportError: No module named 'compiler.ast'
from compiler.ast import flatten 上面这条语句好像在python3 以后就废除了,如果使用的话就会报错.Traceback (most recent call last ...
- Python type hints 之 Optional,Union
1,前言 type hint 在pep484加入,我个人觉得这种类似于类型约束的(机制)有点违背了python简单.简洁的初衷,在慢慢向c# java 这种强类型语言看齐的节奏. 不过好在不强制使用, ...
- Python--day61--Django ORM关系的简单梳理
models.py中的代码和数据库中的表对应
- HDU 1372
题意:模拟国际象棋马的走棋方式,和中国象棋一样马走日,8X8的棋盘,问从起点到终点的最短步数,国际象棋中数字代表行row,字母代表列column, 思路:记忆化深搜. #include<cstd ...
- 2019-9-2-本文说如何显示SVG
title author date CreateTime categories 本文说如何显示SVG lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17:23 ...
- laravel安装intervention/image图像处理扩展 报错 intervention/image 2.3.7 requires ext-fileinfo
在安装intervention/image图像处理扩展 报错fileinfo is missing 报错信息如下: \blog>composer require intervention/ima ...
- SVN中如何执行clean up
在要清理的文件夹上点右键,菜单:TortoiseSVN--选择cleanup,会出现一个菜单栏,在你菜单栏有一个属性breaklock意思是打破锁定,你勾选打破锁定,然后cleanup就会成功,之后再 ...
- SVN 树冲突解决详解
https://blog.csdn.net/xgf415/article/details/75196714 SVN 冲突包括 内容冲突:当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发 ...
- UVA 11584 "Partitioning by Palindromes"(DP+Manacher)
传送门 •题意 •思路一 定义 dp[i] 表示 0~i 的最少划分数: 首先,用马拉车算法求解出回文半径数组: 对于第 i 个字符 si,遍历 j (0 ≤ j < i),判断以 j 为回文中 ...