C#学习笔记之三:数组
2013-11-13 19:52
267 查看
命名空间:using System;
int[] array = new int[5]{1,2,3,4,5};
或
int[] array;
array = new int[5]{1,2,3,4,5};
(2)矩形数组
int[ , ] array2d = new int[2, 2]{
{1,2} , {3,4}
};
int[ , , ] array3d = new int[2, 3, 4]{
{ {1,2,3,4},
{5,6,7,8},
{9,10,11,12}
},
{ {13,14,15,16},
{17,18,19,20},
{21,22,23,24}
}
};
(3)交错数组
int[][] array = int[2][]{
new int[]
{1,2,3},
new int[]
{4,5,6,7,8}
};
foreach (int item in array)
{
//Do something
}
(1)浅复制
新数组仍引用原对象,即两个数组对对象所做的修改会互相反映出来。
使用Clone和CopyTo函数实现的是浅复制。
(2)深复制
新数组维护自己的新对象,一个数组对象的改变不会影响到另一个。
需要自己实现深复制的功能。使用序列化/反序列化方法。
A.首先,引入命名空间
using System.Runtime.Serialization.Formatters.Binary;
B.然后,将需要实现深复制的数据类型标示为
[Serializable]
class ArrayType
{
//Class Implement;
}
C.其次,将数组对象进行序列化
MemoryStream s = new MemoryStream();
BinaryFormatter f = new BinaryFormatter();
f.Serialize(s, array);
s.Position = 0;
D.最后,对复制对象采用反序列化
arrayDeepCopy = (ArrayType[])f.Deserialize(s);
就完成了深复制功能。
1.数组有几种类型?分别如何声明和初始化?
(1)一维数组int[] array = new int[5]{1,2,3,4,5};
或
int[] array;
array = new int[5]{1,2,3,4,5};
(2)矩形数组
int[ , ] array2d = new int[2, 2]{
{1,2} , {3,4}
};
int[ , , ] array3d = new int[2, 3, 4]{
{ {1,2,3,4},
{5,6,7,8},
{9,10,11,12}
},
{ {13,14,15,16},
{17,18,19,20},
{21,22,23,24}
}
};
(3)交错数组
int[][] array = int[2][]{
new int[]
{1,2,3},
new int[]
{4,5,6,7,8}
};
2.遍历数组:foreach
foreach (int item in array)
{
//Do something
}
3.数组协变
可以将继承类对象添加到父类对象数组中。4.浅复制和深复制
当数组对象是引用对象时,浅复制和深复制是不一样的。同时,浅复制和深复制是所有对象所具有的的特征。(1)浅复制
新数组仍引用原对象,即两个数组对对象所做的修改会互相反映出来。
使用Clone和CopyTo函数实现的是浅复制。
(2)深复制
新数组维护自己的新对象,一个数组对象的改变不会影响到另一个。
需要自己实现深复制的功能。使用序列化/反序列化方法。
A.首先,引入命名空间
using System.Runtime.Serialization.Formatters.Binary;
B.然后,将需要实现深复制的数据类型标示为
[Serializable]
class ArrayType
{
//Class Implement;
}
C.其次,将数组对象进行序列化
MemoryStream s = new MemoryStream();
BinaryFormatter f = new BinaryFormatter();
f.Serialize(s, array);
s.Position = 0;
D.最后,对复制对象采用反序列化
arrayDeepCopy = (ArrayType[])f.Deserialize(s);
就完成了深复制功能。
相关文章推荐
- C#学习笔记:foreach遍历变长数组
- 黑马程序员之C#编程基础学习笔记:将一个字符串数组的元素的顺序进行反转。
- 【C#学习笔记】数组使用
- C#学习笔记——多维数组与交错数组的区别
- C#学习笔记集合类型之数组(3)
- C#学习笔记之——数组
- 新手菜鸟学习C#的笔记总结 之数组与集合(上)
- C# 学习笔记 数组的复制和array.copyto()
- c#之位数组学习笔记
- [C#学习笔记]数组
- 黑马程序员之C#学习笔记:随机产生1-100的随即数插入到数组中,数字不能有重复
- 黑马程序员之C#学习笔记:数组的复制四种方法
- C#学习笔记之四 C#中数组的创建方法
- C#教程第2讲数组(学习笔记)
- 学习笔记 3 C# 数组,集合
- C#学习笔记----第三周(数组、递归、对象)(1)
- 学习笔记3 上午 C# 数组,集合
- C#学习笔记03:数组
- 新手菜鸟学习C#的笔记总结 之数组与集合(下)
- 黑马程序员_c#基础知识学习笔记:数组